Как заставить «jQuery.Event» работать на Firefox? - PullRequest
4 голосов
/ 05 января 2012

Я пишу скрипт, который запускает событие искусственного нажатия клавиш с помощью keyCode 37, когда кнопка нажата.

Следующий скрипт отлично работает в IE, Safari и Chrome, но не работает в Firefox и Opera. Даже если я изменю {keyCode: 37} на {который: 37} , он все равно не будет работать.

$('button').click(function(e){
   jQuery("body").trigger(jQuery.Event("keydown", {keyCode: 37}));
   e.preventDefault();
}  

Кто-нибудь знает, как заставить его работать в Firefox и Opera?

Ответы [ 2 ]

3 голосов
/ 05 января 2012

попробуйте, если браузер не поддерживает which, он будет поддерживать keyCode

$('button').click(function(){
   var keyDownEvent = jQuery.Event("keydown");
   if(keyDownEvent.which){
           keyDownEvent.which = 37;
   }else{
           keyDownEvent.keyCode = 37;
        } 
  $("body").trigger(keyDownEvent);   
}
1 голос
/ 05 января 2012

Попробуйте так:


$('button').click(function(){
   var e = jQuery.Event("keydown");
   e.which = 50;
  $("body").trigger(e);   
} 

...