在jQuery中检测输入之外的键入

Detecting typing outside of an input in jQuery

本文关键字:输入 jQuery 检测      更新时间:2023-09-26

好的,所以对于我们的应用程序,我们有一个侧边栏,其中有一长串当前用户可用的所有不同页面。侧边栏顶部是一个输入,使用Javascript,它只显示侧边栏上包含他们搜索的单词的选项。有没有任何方法可以在没有实际输入或使用隐藏输入的情况下实现这一点?

我希望当用户键入时,只要他们不关注另一个输入/文本区域/其他什么,它就会细化侧边栏。我不确定你是否看过新的MySpace,但这正是我想要的。

这里有一个快速示例,可以为您指明正确的方向。每次按下某个键时,都会检查该事件是否在输入中被激活。如果没有,字符代码将记录到控制台。

$('body').on('keypress', function(e) {
   if ($(e.target).is('input')) {
        return;
   }
   console.log(e.which);
});

收听document上的keypress事件。然后从事件中获取target,以确定它是一个输入还是类似的。

$(document).keypress(function(event) {
    if ($(event.target).is('input')) {
         return;
    }
    event.preventDefault();
});

看看jQuery热键插件。