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

事件。layerX和事件。layerY在WebKit中被破坏和弃用。它们将在不久的将来从发动机中移除。

看起来jQuery把事情搞砸了。

我使用的是:jquery-1.6.1.min.js。

升级到最新的jQuery版本是否会有帮助,或者它还没有修复,或者它是Chrome的bug或其他东西。

PS

我不能向您展示代码,因为我认为这是一个普遍的错误,但我怀疑警告会抛出当我试图访问一个jQuery对象或当jQuery试图访问layerX / layerY(好吧,我很确定这是考虑到错误:P的情况)。

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

所以…

这是怎么呢

EDIT

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

在他们的博客上阅读更多。


当前回答

我在调用任何事件后都使用这个:

$.event.props.splice($.event.props.indexOf("layerY"),1);
$.event.props.splice($.event.props.indexOf("layerX"),1);

这为我工作,我没有警告消息,因为我在我的代码上做了这个补丁。

其他回答

它也可能是由Chrome扩展引起的,所以如果jQuery更新不起作用,请检查它们。

最简单的解决方法是这样一行代码:

$.event.props = $.event.props.join('|').replace('layerX|layerY|', '').split('|');

大量的这些消息(我在使用gmail时刚刚收到了80000条)确实是Chrome中的一个bug。

你应该在Chromium上为这一期打上星号。

下面是另一个一行修复,没有替换$.event的原始实例。Props(可能是也可能不是数组),以防万一:-)

$.each(["layerX","layerY"], function(i,v) { if((i=p.indexOf(v)) > -1) $.fn.splice.call($.event.props,i,1) })

我在调用任何事件后都使用这个:

$.event.props.splice($.event.props.indexOf("layerY"),1);
$.event.props.splice($.event.props.indexOf("layerX"),1);

这为我工作,我没有警告消息,因为我在我的代码上做了这个补丁。