event.keyCode == 13无法在Firefox中运行

时间:2015-10-27 17:02:32

标签: javascript jquery events

我有一个功能,可以enter发送评论(而不是发送shift+enter):

$(msg).keypress(function (e) {
    if (event.keyCode == 13 && event.shiftKey) {
        event.stopPropagation();
    } else if (e.which == 13) {
        // ...
    }
});

它适用于Chrome,但不适用于Firefox。

2 个答案:

答案 0 :(得分:4)

它在Firefox中失败,因为您已经尝试引用特定于IE的全局event变量(Chrome也提供了针对特定于IE的代码抛出的骨骼),{ {3}}。 Firefox没有这个,因此代码会抛出错误。

使用你的处理程序传递的参数(在你的例子中为e),并使用which,jQuery将为你规范化。

答案 1 :(得分:0)

我认为正确的方法是使用它:

$(msg).keypress(function(e) {

    var key = e.keyCode || e.which;

    if(key == 13 && e.shiftKey) {
        e.stopPropagation();
    }
});