获取在 javascript 中双击时按下的键

Get the key that was down while a double click was made in javascript

我想知道在元素上触发双击事件时按下(按住并按下)哪个键。

事件处理程序允许我获取 alt、shift、meta 和 ctrl 键。如果我想检测 'x' 是否在双击时被关闭了怎么办...或者与此相关的任何其他字母或数字。

一种可能是这样做,88 = 字母 x.. 但是.. 有没有更好的方法。

$(document).on('keydown','body',function(e) {
        //console.log(e.keyCode);
        if(e.keyCode==88)
            keyed = true;

    });

    $(document).on('keyup','body',function(e) {
        if(e.keyCode==88)
            keyed = false;
    });

    $(document).on('dblclick','body',function(e) {
        if(keyed==true)
            alert('yes');
        keyed=false;
    });

如果您想检测 ctrl、alt 或 shift 键,它们会在传递给您的事件对象上公开。

$(document).on('dblclick', function(e){
    /*
     * here you could use e.altKey, e.ctrlKey and e.shiftKey - all of them
     * are bools indicating if the key was pressed during the event.
     */
});

如果你想检测不同的密钥,那么 omar-ali 的答案似乎是正确的做法。

您必须在 keyup 事件之前存储键码,并在双击事件时引用当前值。

var heldKey;
$(document).on({ 
    'keydown' : function(e) {        
        heldKey = e.which || e.keyCode;
    },
    'keyup': function(e) { 
        heldKey = undefined;
    },
    'dblclick': function(e){
        console.log(String.fromCharCode(heldKey));
    }
});