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

jQuery: fire keyup on all document excluding one input text field

本文关键字:文档 keyup 字段 文本 输入 一个 jQuery      更新时间:2024-06-06

我有一个

$(document).keyup(function(e) {
  //some code is here
});

代码,工作正常:当我按下键盘上的任何键时,它都会启动。我希望它启动,但不是当光标在时

<input type="text" id="excludeMeFromFiring">

它在页面上。

在具有特殊id的输入文本字段中键入时,如何修改上面的代码以排除激发?因此,如果光标在输入文本字段中,它不会触发。

谢谢。

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

$(document).keyup(function(e) {
    if ($(e.target).closest("#excludeMeFromFiring")[0]) {
        return;
    }
    // It's not that element, handle it
});

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

$(document).keyup(function(e) {
    if (e.target.id === "excludeMeFromFiring") {
        return;
    }
    // It's not that element, handle it
});

只要元素中有其他元素,我就会使用closest

尝试

$(document).keyup(function (e) {
    if(e.target.id === 'excludeMeFromFiring'){
        console.log('no');
    }else{
        console.log('hi');
    }
});

$(document).keyup(function (e) {
    if(e.target.id !== 'excludeMeFromFiring'){
       console.log('hi');
    }
});

另一个例子:

$('#excludeMeFromFiring').keyup(function(e) {
    e.stopPropagation();
});