Mit*_*ran 493 javascript jquery keyevent jquery-events
如何在IE,Firefox和Chrome中检测转义按键?下面的代码适用于IE和警报27,但在Firefox中它会发出警报0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
Run Code Online (Sandbox Code Playgroud)
Jig*_*shi 915
注:keyCode被越来越不赞成使用key来代替.
function keyPress (e) {
if(e.key === "Escape") {
// write your logic here.
}
}
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle
keyCode 被弃用了
它似乎
keydown和keyup工作,即使keypress可能没有
$(document).keyup(function(e) {
if (e.key === "Escape") { // escape key maps to keycode `27`
// <DO YOUR WORK HERE>
}
});
Run Code Online (Sandbox Code Playgroud)
Tim*_*own 197
该keydown活动适用于Escape,并且可以让您keyCode在所有浏览器中使用.此外,您需要将侦听器连接到document主体而不是主体.
2016年5月更新
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");
}
};Run Code Online (Sandbox Code Playgroud)
Click me then press the Escape keyRun Code Online (Sandbox Code Playgroud)
Sub*_*axe 35
使用JavaScript,您可以检查工作jsfiddle
document.onkeydown = function(evt) {
evt = evt || window.event;
if (evt.keyCode == 27) {
alert('Esc key pressed.');
}
};
Run Code Online (Sandbox Code Playgroud)
jQuery(document).on('keyup',function(evt) {
if (evt.keyCode == 27) {
alert('Esc key pressed.');
}
});
Run Code Online (Sandbox Code Playgroud)
jAn*_*ndy 15
检查keyCode&& which和keyup||keydown
$(document).keydown(function(e){
var code = e.keyCode || e.which;
alert(code);
});
Run Code Online (Sandbox Code Playgroud)
小智 15
纯 JS(无 JQuery)
document.addEventListener('keydown', function(e) {
if(e.keyCode == 27){
//add your code here
}
});
Run Code Online (Sandbox Code Playgroud)
最好的办法就是为此做好准备
功能:
$.fn.escape = function (callback) {
return this.each(function () {
$(document).on("keydown", this, function (e) {
var keycode = ((typeof e.keyCode !='undefined' && e.keyCode) ? e.keyCode : e.which);
if (keycode === 27) {
callback.call(this, e);
};
});
});
};
Run Code Online (Sandbox Code Playgroud)
例:
$("#my-div").escape(function () {
alert('Escape!');
})
Run Code Online (Sandbox Code Playgroud)
下面的代码不仅禁用ESC键,还检查按下它的条件,根据情况,它将执行或不执行操作.
在这个例子中,
e.preventDefault();
Run Code Online (Sandbox Code Playgroud)
将禁用ESC按键操作.
你可以做任何事情来隐藏div:
document.getElementById('myDivId').style.display = 'none';
Run Code Online (Sandbox Code Playgroud)
按下ESC键的地方也被考虑在内:
(e.target.nodeName=='BODY')
Run Code Online (Sandbox Code Playgroud)
如果你想向所有人申请,你可以删除这个条件部分.或者您可以将INPUT定位到此处仅在光标位于输入框中时应用此操作.
window.addEventListener('keydown', function(e){
if((e.key=='Escape'||e.key=='Esc'||e.keyCode==27) && (e.target.nodeName=='BODY')){
e.preventDefault();
return false;
}
}, true);
Run Code Online (Sandbox Code Playgroud)
您可以将侦听器附加到keyUp文档的事件。
另外,如果你想确保,任何其他键不沿按下Esc按键,你可以使用的值ctrlKey,altKey和shifkey。
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape') {
//if esc key was not pressed in combination with ctrl or alt or shift
const isNotCombinedKey = !(event.ctrlKey || event.altKey || event.shiftKey);
if (isNotCombinedKey) {
console.log('Escape key was pressed with out any group keys')
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458062 次 |
| 最近记录: |