【问题标题】:Opera not firing keyup and keydown eventsOpera 没有触发 keyup 和 keydown 事件
【发布时间】:2013-10-18 18:20:52
【问题描述】:

我对 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 中看到过仅与向下键有关的其他问题,但这显然是另一回事。

感谢您的帮助!

【问题讨论】:

  • 任何特定版本的opera --- 它适用于我的opera 12.16
  • 仅供参考 - 您的代码在功能上等同于这个小提琴。您不必在循环中绑定事件,jQuery 会为您规范化事件对象。 jsfiddle.net/LyV6h

标签: jquery opera keyboard-events


【解决方案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");
            }   
        });
});

非常感谢!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      尝试为此更改您的代码:

      $(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");
              }   
          });
      });
      

      【讨论】:

      • 这很奇怪,出于某种原因,这在 Opera 中运行得非常好。但是在 Chrome 和 Firefox 中它不起作用。我没有得到 Enter 键的“key down”日志,仅适用于所有其他键!
      猜你喜欢
      • 2012-02-08
      • 1970-01-01
      • 2013-02-12
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      相关资源
      最近更新 更多