Min*_*ing 2 jquery events if-statement exception key
我的网站上有以下jQuery事件
$(window).keyup (function(event) {
switch (event.keyCode) {
case 68: // Alt-N = next
scroll ('next');
break;
case 65: // Alt-P = prev
scroll ('prev');
break;
}
});
});
<script>
$(document).keydown(function(e) {
if(e.keyCode==68){
window.location.href = "{PreviousPost}";
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
我正在使用窗口和文档,因为它们的工作和搜索都没有让我发现功能方面的差异.但无论如何,我想知道的是如何在输入字段中保持函数不被触发.因为它工作和一切,但我不希望当用户只是在他们按下键并且不打字时键入事件.
看起来很简单,但我真的很喜欢.保持给我其他问题的结果.
在事件中:
if ($(e.target).closest("input")[0]) {
return;
}
Run Code Online (Sandbox Code Playgroud)
这样做是看目标是否来自或通过一个input
元素并返回而不做任何事情.更多:closest
| event.target
您的其他案例的逻辑将遵循,例如:
$(document).keydown(function(e) {
if ($(e.target).closest("input")[0]) {
return;
}
if(e.keyCode==68){
window.location.href = "{PreviousPost}";
}
});
Run Code Online (Sandbox Code Playgroud)
注意 - 如果您还想过滤掉select
元素,那么:( $(e.target).closest("input, select")
依此类推,例如button
元素).