对jQuery 1.4.2的Firebug JS警告“不应使用keyup事件的’charCode’属性.这个价值毫无意义.“忽略它?

前端之家收集整理的这篇文章主要介绍了对jQuery 1.4.2的Firebug JS警告“不应使用keyup事件的’charCode’属性.这个价值毫无意义.“忽略它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Firebug 1.5.4 JavaScript警告:不应使用akeyupevent的’charCode’属性.价值毫无意义.忽略它?有什么问题吗?

警告出现在jQuery 1.4.2 keyupandkeydown上,而不是onkeypress.
我已经读过changingevent.keyCodeandevent.charCodetoevent.which必须修复它,但它对我不起作用.
完整代码示例在http://jsfiddle.net/zTevK/2/question
我的代码使用了keyup并且不能使用key.

$(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又会创建警告……您甚至不需要在事件处理程序中执行任何操作(illustrated on jsfiddle)…

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

您可以安全地忽略此消息(假设您没有使用charCode,并且确实正在使用哪个)

猜你在找的jQuery相关文章