2012-01-05 51 views
4

当我点击 按钮时,我正在写一个触发keyCode为37的人工keydown事件的脚本。如何让“jQuery.Event”在Firefox上工作?

以下脚本在IE,Safari和Chrome上运行良好,但在Firefox和Opera上无效。即使我将{keyCode:37}改为{which:37},它仍然不起作用。

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

有谁知道如何使它在Firefox和Opera的工作?

回答

3

试试这个,如果浏览器不支持which,它将支持keyCode

$('button').click(function(){ 
    var keyDownEvent = jQuery.Event("keydown"); 
    if(keyDownEvent.which){ 
      keyDownEvent.which = 37; 
    }else{ 
      keyDownEvent.keyCode = 37; 
     } 
    $("body").trigger(keyDownEvent); 
} 
+0

感谢您的回复。我尝试了上面的脚本,但它仍然无法在Firefox和Opera上运行,尽管它在IE上运行良好。我不知道为什么... – 2012-01-05 04:55:24

+0

我在上面的脚本中将Event(“keydown”)更改为Event(“keypress”)。然后它适用于FireFox和Opera!非常感谢您的帮助!!! – 2012-01-05 06:21:26

+0

多数民众赞成在伟大..我试图太想出这个了..你是受欢迎的人.. – 2012-01-05 06:26:42

1

试试这样说:

 

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

谢谢您的答复。我尝试了上面的脚本,但它仍然无法在Firefox和Opera上运行... – 2012-01-05 04:56:57