我有一个
$(document).keyup(function(e) {
//some code is here
});
代码,按预期工作:当我按下键盘上的任意键时它会触发。 我希望它能够触发,但是当光标位于
时不能触发<input type="text" id="excludeMeFromFiring">
位于页面上。
如何在输入带有特殊ID的输入文本字段中修改上面的代码以排除触发?因此,如果光标位于输入文本字段中,则不会触发。
谢谢。
答案 0 :(得分:5)
在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
。
答案 1 :(得分:3)
尝试
$(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');
}
});
答案 2 :(得分:3)
另一个例子:
$('#excludeMeFromFiring').keyup(function(e) {
e.stopPropagation();
});