1

我对 Opera 中的 keydown 和 keyup 事件有疑问。出于某种原因,这在 Opera 中没有任何作用:

// add submit event for pressing enter
$(".select2-input").each(function (counter, element) {
    $(element).keydown(function (event) {
        console.log("key down");
        if (!event) event = window.event;
        var keyCode = event.keyCode || event.which;
        if(keyCode == '13' /* enter key */ ) {
            console.log("press enter");
        }
    });
});

我尝试使用 keyup 代替,这也不起作用。在 Chrome 和 Firefox 中它运行良好。如您所见,代码的实际目的是检测回车键。但是尽管如此,任何键都没有输出。我已经看到其他仅与 Opera 中的向下键有关的问题,但这显然是另一回事。

谢谢你的帮助!

4

3 回答 3

1

好的,我现在明白了。

我使用了 Hugos 的答案,但将事件更改为keyup,现在它在所有浏览器中都可以正常工作(尽管 IE 我还没有测试过)。

$(document).ready(function(){
    $(document).on("keyup",".select2-input", function (event) {
        console.log("key up");
        if (!event) event = window.event;
            var keyCode = event.keyCode || event.which;
            if(keyCode == '13' /* enter key */ ) {
                console.log("press enter");
            }   
        });
});

非常感谢!

于 2013-10-21T10:07:27.760 回答
0

以前这个和 Oper 有错误,但现在应该修复。这可能会有所帮助:http: //quirksmode.org/dom/events/ 不确定您使用的是什么版本,等等。

于 2013-10-18T18:29:28.833 回答
0

尝试为此更改您的代码:

$(document).ready(function(){
    $(document).on("keydown",".select2-input",function(event){
        console.log("key down");
        if (!event) event = window.event;
        var keyCode = event.keyCode || event.which;
        if(keyCode == '13' /* enter key */ ) {
            console.log("press enter");
        }   
    });
});
于 2013-10-18T18:36:25.377 回答