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

时间:2010-06-08 11:52:58

标签: jquery firebug keypress keydown

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

该警告显示在jQuery 1.4.2 keyupkeydown上,而不是keypress上 我已经读过,在更改event.keyCodeevent.charCodeevent.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();
  ...

3 个答案:

答案 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”发生...