Firebug 1.5.4 JavaScript警告:不应使用keyup
事件的'charCode'属性。这个价值毫无意义。要忽略它?有什么问题吗?
该警告显示在jQuery 1.4.2 keyup
和keydown
上,而不是keypress
上
我已经读过,在更改event.keyCode
和event.charCode
到event.which
时必须修复它,但它对我不起作用。
http://jsfiddle.net/zTevK/2/和question中的完整代码示例
我的代码使用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();
...
答案 0 :(得分:8)
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
,后者又会创建警告......您甚至不需要在事件处理程序(illustrated on jsfiddle)中执行任何操作。 。
我通常最终使用的“解决方案”只是在没有JS警告的情况下运行(错误仍然显示) Turning off Warnings http://img8.imageshack.us/img8/5530/screenshot20100608at104.png
您可以放心地忽略此消息(假设您没有使用charCode
,并确实使用which
)
答案 1 :(得分:3)
这是一个非常常见的错误消息,来自mozilla代码。每次按键都会显示该消息,如果您打开了错误控制台,则可能会导致性能问题。我向mozilla抱怨这个和类似的消息没有任何效果。 JJB
答案 2 :(得分:0)
尝试更改charCode - &gt;源jquery-1.X.X.js中的XcharCode一切正常
在最新版本1.4.4中有“4”发生...