【问题标题】:How can I check if two keys are pressed at once? [closed]如何检查是否同时按下了两个键? [关闭]
【发布时间】:2015-04-22 14:17:21
【问题描述】:
window.onkeydown = function(e) {
    //enter key adds a task
    var code = e.keyCode || e.which;
    if(code === 13) {
        var taskName = document.getElementById("task_name").value;
        var dueDate = document.getElementById("due_date").value;
        $("#list").append("<div class='task'>" + taskName + "<textarea class='note_input' placeholder='Notes' rows='2'></textarea>" + "<br>" + "<div class='due'>" + "Due: " + dueDate + "</div>" + "</div>");
        $("h1").effect("pulsate", 1000);
    }
    //checking if alt and c keys are both pressed
    var clearKeys = {
alt: false,
  c: false,
    };
if (code === 18) {
    clearKeys.alt = true;
} else if (code === 67) {
    clearKeys.c = true;
}
if (clearKeys.alt === true && clearKeys.c === true) {
    $(".task").fadeOut("slow");
}
    //resetting the values of clearKeys.alt and clearKeys.c
    window.onkeyup = function(e) {
        var code = e.keyCode || e.which;
    if (code === 18) {
        clearKeys.alt = false;
    } else if (code === 67) {
        clearKeys.c = false;
    }
    };
};

我在 JS Bin 中制作了这个项目。 You can check it out here. 当我按回车键时,它工作正常。但是当我想清除列表时(alt + c)它不起作用。代码在我看来很好,编辑器没有显示任何错误,所以我不知道哪里出错了。

【问题讨论】:

标签: javascript hotkeys


【解决方案1】:
window.onkeydown = function(e) {
    code == e.keyCode || e.which;
    if( e.altKey && code == 67 ) {
        //alt+c
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多