WebKit问题与event.layerX和event.layerY
我刚刚注意到,在Chrome的最新版本(金丝雀)中,我收到了大量不推荐使用的警告。
event.layerX和event.layerY在WebKit中被破坏并被弃用。 他们将在不久的将来从引擎中移除。
看起来像jQuery是搞砸了。
我使用的是: jquery-1.6.1.min.js
。
它有助于升级到最新的jQuery版本,还是没有修复它,或者它是Chrome的bug还是其他的东西。
PS
我不能显示你的代码,因为我认为这是一个普遍的错误,但我怀疑当我尝试访问一个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不能解决您的问题,它可能与使用的扩展/插件有关,正如Jake在回答中所述。
http://jsperf.com/removing-event-props/2
临时解决方法是在通过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;
}());
UPDATE
查看最新的性能测试,找出最快的方式去除事件道具。
对此的最短解决方案是这样的一行:
$.event.props = $.event.props.join('|').replace('layerX|layerY|', '').split('|');
链接地址: http://www.djcxy.com/p/35421.html
上一篇: WebKit issues with event.layerX and event.layerY
下一篇: Selecting text in an element (akin to highlighting with your mouse)