Firebug JS警告jQuery 1.4.2"不应该使用keyup事件的'charCode'属性.这个值没有意义." 忽略它?

Bin*_*min 4 jquery firebug keypress keydown

Firebug 1.5.4 JavaScript警告:不应使用事件的'charCode'属性keyup.价值毫无意义.忽略它?有什么问题吗?

该警告出现的jQuery 1.4.2 keyupkeydown,不是keypress.
我已阅读,在不断变化的event.keyCode,并event.charCodeevent.which必须修复它,但它并没有为我工作.http://jsfiddle.net/zTevK/2/中的
完整代码示例和问题 我的代码使用和不兼容.
keyupkeypress

  $(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();
  ...
Run Code Online (Sandbox Code Playgroud)

gna*_*arf 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;
}
Run Code Online (Sandbox Code Playgroud)

其中一行代码将被访问charCode,这反过来会创建您的警告...您甚至不需要在事件处理程序中执行任何操作(在jsfiddle上说明)...

我通常最终使用的"解决方案"只是在没有JS警告的情况下运行(错误仍然显示) 关闭警告http://img8.imageshack.us/img8/5530/screenshot20100608at104.png

您可以放心地忽略此消息(假设您没有使用charCode,并且确实正在使用which)

  • @Binyamin:jQuery错了.对于`keydown`或`keyup`事件,它不应该用`charCode`做任何事情. (3认同)