为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用纯JS或jQuery检测转义键按下?

如何使用纯JS或jQuery检测转义键按下?

长风秋雁 2019-11-05 14:50:12
如何在IE,Firefox和Chrome中检测逃逸键按下?下面的代码在IE和警报中有效27,但在Firefox中它会警报0$('body').keypress(function(e){    alert(e.which);    if(e.which == 27){        // Close my modal window    }});
查看完整描述

3 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

注:keyCode被越来越不赞成使用key来代替。


function keyPress (e) {

    if(e.key === "Escape") {

        // write your logic here.

    }

}

这是jsfiddle


keyCode 被弃用


看起来keydown和keyup工作,即使keypress可能没有


$(document).keyup(function(e) {

     if (e.key === "Escape") { // escape key maps to keycode `27`

        // <DO YOUR WORK HERE>

    }

});

jQuery的哪个键代码用于转义键


查看完整回答
反对 回复 2019-11-05
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

该keydown事件将对Escape正常运行,并具有允许您keyCode在所有浏览器中使用的优势。另外,您需要将侦听器附加到document主体上,而不是附加到主体上。


keyCode现在正处于弃用过程中,大多数现代浏览器key现在都提供该属性,尽管您现在仍需要一个不错的浏览器支持回落(撰写本文时,Chrome和Safari的当前版本不支持它)。


evt.key现在所有现代浏览器均支持2018年9月更新。


document.onkeydown = function(evt) {

    evt = evt || window.event;

    var isEscape = false;

    if ("key" in evt) {

        isEscape = (evt.key === "Escape" || evt.key === "Esc");

    } else {

        isEscape = (evt.keyCode === 27);

    }

    if (isEscape) {

        alert("Escape");

    }

};

Click me then press the Escape key


查看完整回答
反对 回复 2019-11-05
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

使用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.');

    }

});


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信