对jQuery 1.4.2的Firebug JS警告“不应使用keyup事件的’charCode’属性。 这个价值毫无意义。“忽略它?
Firebug 1.5.4 JavaScript警告: 不应使用keyup
事件的’charCode’属性。 价值毫无意义。 忽略它? 有什么问题吗?
警告出现在jQuery 1.4.2 keyup
和keydown
,而不是在keypress
。
我已经读过将event.keyCode
和event.which
更改为event.which
必须修复它,但它对我不起作用。
http://jsfiddle.net/zTevK/2/中的完整代码示例和问题
我的代码使用keyup
,不适用于keypress
。
$(document).bind('keyup', function(e){ var key = e.which; if (key > 36 && key < 41) { if (key == 37) { changeTab(-1); } if (key == 38) { changeTab(-imgPerRow); } if (key == 39) { changeTab(+1); } if (key == 40) { changeTab(+imgPerRow); } e.preventDefault(); ...
jQuery代码本身规范化了jQuery.event.fix
每个事件
// props includes 'charCode' - this will access it for ( var i = this.props.length, prop; i; ) { prop = this.props[ --i ]; event[ prop ] = originalEvent[ prop ]; } // also, later in the same function // Add which for key events if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { event.which = event.charCode || event.keyCode; }
其中一行代码将访问charCode
,而charCode
又会创建您的警告…您甚至不需要在事件处理程序中执行任何操作( 在jsfiddle上说明 )…
我通常最终使用的“解决方案”只是在没有JS警告的情况下运行(错误仍然显示) 关闭警告http://img8.imageshack.us/img8/5530/screenshot20100608at104.png
您可以安全地忽略此消息(假设您没有使用charCode
,并且确实正在使用which
)
这是一个非常常见的错误消息,来自mozilla代码。 每次击键都会显示该消息,如果您打开了错误控制台,则可能会导致性能问题。 我向mozilla抱怨这个和类似的消息没有效果。 JJB
尝试在源jquery-1.XXjs中更改charCode – > XcharCode,一切正常
在最新版本1.4.4中有“4”发生…