Javascript:如果用户在shiftKey上按两次,则触发一些操作

时间:2015-07-11 17:28:40

标签: javascript

如果用户在shiftKey上按两次,我想触发一些操作。

当我按下shiftKey一次但如何使这个工作两次

时,此代码正常工作
top.addEventListener('keydown', function(e){
   if(e.shiftKey) {
     alert('work');
   }
}, false);

2 个答案:

答案 0 :(得分:0)

您可以使用mousetrap.js简化关键事件

https://craig.is/killing/mice

使用 mousetrap.js 绑定两个连续的 shift 键可快速写为:

Mousetrap.bind('shift shift', function(e) {
    // Do something
});

答案 1 :(得分:0)

只需设置计时器并检测是否在该时间间隔内再次按下了键。

var twice_16 = 0;

$(document).on('keyup', function (e) {

        if (e.which === 16) { // shift    

            if (twice_16 === 1) { // (remember that twice_16 is 0 initially)
                alert('Do something! (you pressed Left twice!)');
            }

            twice_16 = 1; // Set to 1 and...
            setTimeout(function () { // ...reset to 0 after 1s
                twice_16 = 0;
            }, 1000);

        }

    });

工作演示:https://jsfiddle.net/sachinnambiar/6a0m73nh/1/

取自: How to detect: Press twice the same key, but hold it the second time for 2 seconds