gpt4 book ai didi

javascript - 当输入处于焦点时防止按键事件触发

转载 作者:行者123 更新时间:2023-11-30 08:15:53 25 4
gpt4 key购买 nike

我目前正在使用一个开关在按下某个键时触发一些代码。这不是确切的代码,但它基本上是我正在使用的代码(这只是为了在此处保持简短。)

$(document).keydown(function(e) {
switch(e.keyCode) {

case 39:
e.preventDefault();
alert("Arrow Key");

break;

case 37:
e.preventDefault();
alert("Arrow Key");
}
});

如何防止事件在输入框处于焦点时触发?

最佳答案

我想你的意思是你想做 e.preventDefault() 只有当目标元素不是 input 标签时。你可以这样做:

$(document).keydown(function(e) {
if (e.target.nodeName.toLowerCase() !== 'input') {
switch(e.keyCode) {
case 39:
e.preventDefault();
alert("Arrow Key");

break;

case 37:
e.preventDefault();
alert("Arrow Key");
}
}
});

e.target 是事件发起的元素。或者,您可以使用 jQuery 的事件委托(delegate) API:

$(document).delegate(':not(input)', 'keydown', function(e) {
switch(e.keyCode) {
case 39:
e.preventDefault();
alert("Arrow Key");

break;

case 37:
e.preventDefault();
alert("Arrow Key");
}
});

编辑 更新了我的答案以执行“不是输入”而不是“是输入”检查。

关于javascript - 当输入处于焦点时防止按键事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4171732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com