将keydown设置为使用jquery无法在firefox中运行

时间:2011-04-19 07:13:50

标签: javascript jquery firefox keydown

基本上我需要我的页面来响应左右箭头键。所以试图让body标签触发一个事件 - 让它在chrome等工作,在firefox尝试谷歌搜索中没有做任何事情,并且50个不同的结果仍然没有骰子。有人有任何想法吗?

继承人我用的是chrome-

body标记调用此脚本

$(document).ready(adjust());

------------------ javascript

function adjust(){
 $("body").keydown(function(){arrowKey(event.keyCode);});
}

function arrowKey(k){
alert(k);
    if (k==37)
        alert("Left");
    else if (k==39)
        alert("Right");
    else if (k==32)
        alert("space");
}

我已经在功能中用警报替换方法以进行测试,但我需要能够根据按下的箭头调用不同的函数

3 个答案:

答案 0 :(得分:4)

$("body").keydown(function( ){arrowKey(event.keyCode);});
                           ^ 

event可能缺失

$("body").keydown(function(event){arrowKey(event.keyCode);});

JSFIDDLE

答案 1 :(得分:4)

实际上即使没有“事件”,它也可以在chrome中运行,因为事件是chrome中的关键字,并且它填充了最后触发的事件。

它在firefox中不起作用的原因是你应该像这样分配事件:

$(document).keydown(function(event){arrowKey(event.keyCode);});

由于某种原因,“body”不接受keydown事件。希望它有所帮助。

答案 2 :(得分:-1)

好的为什么你不使用JavaScript

window.body.onkeydown=function(evt)
{
arrowKey(evt.keyCode);
}