jquery - JQMIGRATE:jQuery.fn.offset() 需要一个连接到文档的元素
问题描述
我有一个使用 jquery 1.x 的站点......现在,我已经开始在这个站点中使用 jquery 3.x ......为了解决任何迁移问题,我安装了 JQMigrate。
它在控制台窗口中显示的消息之一是“JQMIGRATE:jQuery.fn.offset() 需要连接到文档的元素”。
我不确定如何解决它。唯一被称为“解决方案”的是:“不要尝试获取或设置无效输入的偏移信息。”
这很明显,但在实践中这意味着什么?例如,如果我有,
var parentOffset = $offsetParent.offset();
我应该像这样写那行吗?
var parentOffset = $offsetParent ? $offsetParent.offset() : 0;
真的有必要吗,因为我知道 $offsetParent 始终是有效的输入。
问候詹姆
解决方案
我刚刚遇到了同一行代码。
这里的问题是该$offsetParent
元素不是document
.
我们不想检查$offsetParent.length
,而是要确保这个元素实际上是document
// As of jQuery 3.0, .offset() only works for elements that are currently
// in the document. In earlier versions, this would return the value below
// but in jQuery 3.0 this throws an error.
var parentOffset = {top: 0, left: 0};
// If the element is in the document we are safe to use .offset()
if(document.body.contains($offsetParent[0])) {
parentOffset = $offsetParent.offset();
}
有关此更改的更多信息,请参阅https://github.com/jquery/jquery-migrate/blob/master/warnings.md#jqmigrate-jqueryfnoffset-requires-an-element-connected-to-a-document。
推荐阅读
- import - Angular 8 - 自定义发布的模块在导入更高的角度版本时出错
- node.js - 如何访问部署在heroku上的mern应用程序中的环境值以进行反应?
- swift - 合并不同大小的视频和图像
- postgresql - 使用 quarkus 反应式 pg 客户端时如何设置获取大小
- random - 有没有一种方法可以根据 Secured Random 结果对 Web 服务器编程语言进行逆向工程?
- jquery - Symfony 使用 Ajax 和 jquery 进行高级搜索
- parcel - 如何让 Parcel 2 添加供应商前缀
- python - 合并数据帧,但不与正确数据帧中的值相交
- r - 字符串作为R内部地图中的函数参数
- postman - Postman 错误:在建立安全 TLS 连接之前,客户端网络套接字已断开连接