jQuery:在一个输入文本字段之外的所有文档上激活keyup

Har*_*iec 0 javascript jquery input keyup jquery-1.9

我有一个

$(document).keyup(function(e) {
  //some code is here
});
Run Code Online (Sandbox Code Playgroud)

代码,按预期工作:当我按下键盘上的任何键时它会触发.我想要它,但不是当光标在

<input type="text" id="excludeMeFromFiring">
Run Code Online (Sandbox Code Playgroud)

在页面上.

如何在输入带有特殊ID的输入文本字段中修改上面的代码以排除触发?因此,如果光标位于输入文本字段中,则不会触发.

谢谢.

T.J*_*der 5

keyup函数中很容易做到这一点:

$(document).keyup(function(e) {
    if ($(e.target).closest("#excludeMeFromFiring")[0]) {
        return;
    }

    // It's not that element, handle it
});
Run Code Online (Sandbox Code Playgroud)

这是一般情况; 因为input元素中不能包含任何元素,所以您可以使用e.target.id而不是closest:

$(document).keyup(function(e) {
    if (e.target.id === "excludeMeFromFiring") {
        return;
    }

    // It's not that element, handle it
});
Run Code Online (Sandbox Code Playgroud)

closest每当元素中包含其他元素时,我就会使用它.