Keypress在Firefox中没有被攻击

时间:2010-11-13 06:48:52

标签: javascript jquery javascript-events event-handling

我正在使用javascript按键开关来触发事件,它在webkit浏览器中工作正常,但它在firefox中不起作用。有人可以帮忙吗?我正在使用的代码是:

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

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

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

我试图触发的功能比仅仅发出警报更复杂,但我想我会保持简单的解释。

2 个答案:

答案 0 :(得分: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");
}
});

答案 1 :(得分:2)

你有一个语法错误(}之前的错误括号break;),以及你函数中未定义的对象(事件)。

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

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

break;

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

MSIE中没有出现错误的对象(事件),因为总有一个名为“event”的全局对象