小编典典

WebKit 与 event.layerX 和 event.layerY 的问题

all

我刚刚注意到我在最新的(金丝雀)Chrome 版本中收到了大量已弃用的警告。

event.layerX 和 event.layerY 在 WebKit 中被破坏和弃用。它们将在不久的将来从引擎中移除。

看起来 jQuery 搞砸了。

我正在使用:jquery-1.6.1.min.js

升级到最新的 jQuery 版本是否有帮助,或者它还没有修复,或者它是 Chrome 错误还是其他什么。

附言

我无法向您展示代码,因为我认为这是一个一般性错误,但我怀疑当我尝试访问 jQuery 对象或 jQuery 尝试访问 layerX / layerY
时会引发警告(好吧,我很确定这是考虑到的情况错误:P)。

jQuery 可能会将这些属性复制到 jQuery 对象中。

所以…

这是怎么回事?

编辑

jQuery 1.7 已经发布并修复了这个问题。

在他们的博客上阅读更多信息,在这里。


阅读 86

收藏
2022-03-11

共1个答案

小编典典

这是怎么回事!?

“jQuery 可能会将这些属性复制到 jQuery 对象中。” 你是完全正确的,所以听起来你已经知道了!:)

希望 jQuery 将更新他们的代码以停止触及它,但同时 WebKit 应该知道比在事件上记录弃用警告更好(至少在我看来)。一个 mousemove
处理程序和您的控制台爆炸。:)

这是最近的 jQuery 票:http
://bugs.jquery.com/ticket/10531

更新:如果您升级到 jQuery 1.7,现在已修复此问题。

请注意,如果升级 jQuery 不能为您解决问题,它可能与回答中所说的使用的扩展/插件有关。
临时修复是在通过 jQuery 进行任何事件绑定之前运行此代码:

(function(){
    // remove layerX and layerY
    var all = $.event.props,
        len = all.length,
        res = [];
    while (len--) {
      var el = all[len];
      if (el != 'layerX' && el != 'layerY') res.push(el);
    }
    $.event.props = res;
}());

更新

查看最新的性能测试,了解移除事件道具的最快方法。

2022-03-11