可能的重复: 哪个键代码的转义键与jQuery

如何检测IE, Firefox和Chrome中的escape键? 下面的代码在IE中工作,并提醒27,但在Firefox中它提醒0

$('body').keypress(function(e){
    alert(e.which);
    if(e.which == 27){
        // Close my modal window
    }
});

当前回答

我认为最简单的方法是使用javascript:

document.onkeyup = function(event) {
   if (event.keyCode === 27){
     //do something here
   }
}

更新:更改key => keyCode

其他回答

注意:keyCode已弃用,请使用key代替。

function keyPress (e) {
    if(e.key === "Escape") {
        // write your logic here.
    }
}

代码片段:

var msg = document.getElementById('state-msg'); document.body。addEventListener('keypress',函数(e) { if (e.key == "Escape") { 味精。textContent += 'Escape pressed:' } }); 按ESC键<span id="state-msg"></span> . /span . > . /span . > . /span . > . /span . > . /span


keyCode已弃用

按下键和按上键似乎都有用,尽管按下键可能不行


$(document).keyup(function(e) {
     if (e.key === "Escape") { // escape key maps to keycode `27`
        // <DO YOUR WORK HERE>
    }
});

哪个键代码的转义键与jQuery

检查keyCode && which & keyup || keydown

$(document).keydown(function(e){
   var code = e.keyCode || e.which;
   alert(code);
});

使用JavaScript你可以检查工作的jsfiddle

document.onkeydown = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == 27) {
        alert('Esc key pressed.');
    }
};

使用jQuery可以检查工作的jsfiddle

jQuery(document).on('keyup',function(evt) {
    if (evt.keyCode == 27) {
       alert('Esc key pressed.');
    }
});

我认为最简单的方法是使用javascript:

document.onkeyup = function(event) {
   if (event.keyCode === 27){
     //do something here
   }
}

更新:更改key => keyCode

纯JS(没有JQuery)

document.addEventListener('keydown', function(e) {
    if(e.keyCode == 27){
      //add your code here
    }
});