2010-11-13 2 views
1

Я использую javascript keypress для запуска событий, и он отлично работает в браузерах webkit, но он не работает в firefox. Может ли кто-нибудь помочь? код я использую:Keypress Not Firing В Firefox

$(document).keydown(function(e) { 
switch(e.keyCode) { 

    case 39: 
    event.preventDefault(); 
      alert("Arrow Key"); 
} 
break; 

    case 37: 
      event.preventDefault(); 
      alert("Arrow Key"); 
} 
}); 

функции Я пытаюсь пожар является более сложным, чем просто предупреждение, но я думал, что я бы сохранить его простым для объяснения.

+0

Я попытался KeyDown и KeyUp и все те же результаты в firefox (не работает), и все они работают в браузерах webkit. – mcbeav

+0

Вы явно передаете событие из Html до функции? – CarneyCode

+0

@you следует использовать keydown на каком-то текстовом поле или так правильно, почему вы делаете в документе, глобально ли это – kobe

ответ

2

У вас есть синтаксические ошибки (неправильный кронштейн } перед тем break;) и неопределенный объект (событие) внутри вашей функции.

$(document).keydown(function(e) { 
switch(e.keyCode) { 

case 39: 
e.preventDefault(); 
     alert("Arrow Key"); 

break; 

case 37: 
     e.preventDefault(); 
     alert("Arrow Key"); 
} 
}); 

неверный объект (события) does' происходят в MSIE, так как всегда есть глобальный объект под названием «событие»

+0

ах, так просто. Спасибо. Работал как шарм. Не знаю почему я писал event.PreventDefault(); – mcbeav

+0

Возможно, потому что внутри jquery-docs они всегда используют 'event.preventDefault()'. Но они также называют функцию-аргумент «событие». –

+0

@dr molle блестящий, хороший улов, я смотрел на него, но не мог идентифицировать. Я сделал много вещей, используя ... – kobe

3

IIRC Firefox использует charCode, а не keyCode.

Вы можете попробовать это:

$(document).keydown(function(e) { 
kCode = (e.keyCode)? e.keyCode: e.charCode; 
switch(kCode) { 

case 39: 
event.preventDefault(); 
     alert("Arrow Key"); 
} 
break; 

case 37: 
     event.preventDefault(); 
     alert("Arrow Key"); 
} 
});