jquery:在 keyup 上执行此操作,除非该人位于文本区域或输入中

标签 jquery onkeyup

我的脚本可以工作,但我不明白如何使其在文本区域/输入中按下这些键时不启动功能。又名:当用户按下该键时启动事件,除非用户位于文本区域/输入中。

$('body').keyup(function (event) {

var direction = null;
if (event.keyCode == 37) {
  $('#wrapper').fadeOut(500)
} else if (event.keyCode == 39) {
        $('html,body').animate({scrollTop: $('body').offset().top}, {duration: 1500, easing: 'easeInOutQuart'}
        )
return false;    
}
     })

最佳答案

只需检查 event.target:

$('body').keyup(function(event) {
    if ($(event.target).is(':not(input, textarea)')) {
       ...
    }
});

在这种情况下,您仍然只有一个事件处理程序(附加到正文),但它将过滤接收事件的元素

关于jquery:在 keyup 上执行此操作,除非该人位于文本区域或输入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787939/

相关文章:

javascript - PHP Ajax onkeyup 在我的 Switch 案例网站上不起作用

jquery - 使用 JQuery 禁用 JQuery Mobile 按钮

jquery - Bootstrap 中输入的边框颜色

jquery - 仅选择主表中的 tr,而不选择嵌套表

javascript - 具有 javascript 智能感知和自动完成支持的插件?

jquery - 在 iOS 上的 Safari 和 Chrome 中只允许数字和冒号

javascript - 预览和编辑外部网站

javascript - 使用西里尔字母布局时,Onkeyup 在 Opera 中不会触发

jquery:keydown,keyup,小片段,为什么这不起作用?

javascript - 特定时间内只有一个 keyup 事件