如何在释放CTRL-F时检测CTRL键的“key up”事件?

时间:2017-12-06 21:04:47

标签: javascript jquery

我试图在浏览器中释放CTRL + F时检测CTRL键的“key up”事件。我试过这个:

    $(document).keyup(function(e){
        if (e.ctrlKey){ // note that I'm not even checking for the F key here
            console.log("CTRL up");
        }
    });

但它不起作用,事件未被触发。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

如果您正在使用jQuery,您可以随时执行:

$(document).keydown(function(e) {
  if(e.ctrlKey && (e.keyCode === 70 || e.keyCode === 102)) // f or F
    alert("Ctrl+F was pressed!!");
});

来自您的代码:

  • 从不使用keyup,到那时浏览器已经触发了自己的事件,而且事件永远不会再次冒泡到文档中,至少应该使用keydown
  • 您永远无法覆盖浏览器行为,在这种情况下,请带上搜索输入框

答案 1 :(得分:0)

e.ctrlKey在keyUp事件上返回false,在keyDown上返回true。您可以测试(e.keyCode === 17)条件。

答案 2 :(得分:0)

你非常接近。我总是觉得输出e变量最简单,以便查看确切的内容并从那里过滤掉。 请参阅我的jsfiddle了解一个有效的例子。

$(document).keyup(function (e) {
  if(e.originalEvent.key == 'Control') {
    console.log("CTRL keyup event.");
  }
});