我刚刚注意到我在最新的(金丝雀)Chrome 版本中收到了大量已弃用的警告。
event.layerX 和 event.layerY 在 WebKit 中被破坏和弃用。它们将在不久的将来从引擎中移除。
看起来 jQuery 搞砸了。
我正在使用:jquery-1.6.1.min.js。
jquery-1.6.1.min.js
升级到最新的 jQuery 版本是否有帮助,或者它还没有修复,或者它是 Chrome 错误还是其他什么。
附言
我无法向您展示代码,因为我认为这是一个一般性错误,但我怀疑当我尝试访问 jQuery 对象或 jQuery 尝试访问 layerX / layerY 时会引发警告(好吧,我很确定这是考虑到的情况错误:P)。
jQuery 可能会将这些属性复制到 jQuery 对象中。
所以…
这是怎么回事?
编辑
jQuery 1.7 已经发布并修复了这个问题。
在他们的博客上阅读更多信息,在这里。
这是怎么回事!?
“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; }());
更新
查看最新的性能测试,了解移除事件道具的最快方法。