Firebug JS предупреждение jQuery 1.4.2 «Не следует использовать свойство charCode события keyup. Значение не имеет смысла». Игнорировать это? - PullRequest
4 голосов
/ 08 июня 2010

Firebug 1.5.4 Предупреждение JavaScript: Свойство charCode для события keyup не должно использоваться. Значение не имеет смысла. Чтобы его игнорировать? Есть ли проблема?

Предупреждение появляется для jQuery 1.4.2 keyup и keydown, а не для keypress.
Я читал, что при изменении event.keyCode и event.charCode на 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();
  ...

Ответы [ 3 ]

8 голосов
/ 08 июня 2010

Сам код 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, что, в свою очередь, создает ваше предупреждение ... Вам даже не нужно ничего делать в обработчике событий ( показано на jsfiddle ) ...

«Решение», которое я обычно использую, просто работает без предупреждений JS (ошибки все еще отображаются) Отключение предупреждений http://img8.imageshack.us/img8/5530/screenshot20100608at104.png

Вы можете спокойно игнорировать это сообщение (при условии, что вы не используете charCode, а действительно используете which)

3 голосов
/ 08 июня 2010

Это очень распространенное сообщение об ошибке, которое появляется из кода Mozilla. Сообщение появляется при каждом нажатии клавиши и может привести к проблемам с производительностью, если у вас открыта консоль ошибок. Я жаловался Mozilla на это и подобные сообщения безрезультатно. JJB

0 голосов
/ 15 декабря 2010

попробуйте изменить charCode -> XcharCode в исходном jquery-1.X.X.js и все работает ОК

в последней версии 1.4.4 есть "4" вхождения ...

...