带有setTimeout的双按键陷阱ctrl

Double key trap ctrl with setTimeout

本文关键字:陷阱 ctrl setTimeout 带有      更新时间:2023-09-26

我正在尝试构建一个代码,其中:

  • 当用户双击ctrl按钮时
  • 对象的css属性更改

我的代码如下:

$(document).keydown(function(){
    setTimeout(function(e){
        var count_keypress = 0;
        if (e.keyCode == 17) {
            count_keypress +1;
        }
        if (count_keypress == 2) {
            $("#iframe_add_update").css(
        "display" , "inline"
          );
        }
    },1000);
});

尝试:

var tapStarted = false;
$(document).keydown(function() {
    if (e.keyCode == 17) {
        if (!tapStarted) {
            tapStarted = true;
            setTimeout(function() {
               tapStarted = false; 
            }, 1000);
        } else {
            /* DO STUFF! */
            tapStarted = false;
        }
    }
});

这里的想法是,第一次按下ctrl时,按下会被记住,但计时器会启动,它会在1000ms后忘记第一次按下(你可以将值更改为任何明显的值-1000ms可能太长)。

用户必须第二次按下ctrl,然后计时器才能取消第一次按下。