我正在使用下面的代码:
$(document).keypress(function (e) {
if (e.which === 68 || e.which === 100) {
doStuff();
}
});
我想要的是捕获“D”键作为我页面中某个功能的快捷方式。问题是,此页面有输入和文本区域控件,当我在此控件上键入时,会调用“doStuff()”函数。
如何避免?仅当用户未在可编辑控件中键入任何内容时,我才希望捕获“D”键。
谢谢!
最佳答案
除了e.target
之外,您还可以测试当前事件元素是输入还是文本区域:
$(document).keypress(function (e) {
var focussedTag = document.activeElement && document.activeElement.nodeName;
if( focussedTag === 'INPUT' || focussedTag === 'TEXTAREA' ) {
return;
}
if (e.which === 68 || e.which === 100) {
doStuff();
}
} );
fiddle :https://jsfiddle.net/e1qtapo6/
关于javascript - 按键,但当输入或文本区域处于焦点时不按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44905978/