我有这行代码$('#tbl-purchase-list').on( 'keyup change', 'input[type="text"]'
,可检测所有input[type="text"]
字段的输入。但是,我有一个输入字段,我不想在键盘上输入文本或对其进行任何更改时检测到它。<input type="text" class="form-control purchase-freight-charge" id="purchase-freight-charge" value="" />
。有没有一种方法在javascript中忽略某个元素的某些事件?像$("#purchase-freight-charge").ignoreEvents();
这样的东西?请帮忙。非常感谢。
答案 0 :(得分:2)
当然有一个:not()
伪选择器:
$('#tbl-purchase-list').on('keyup change',
'input[type="text"]:not(#purchase-freight-charge)',
...);
它不会在匹配的选择器集中添加目标元素。因此,:not()
内的元素不会发生任何事件。
事件也可以这样做:
$('#tbl-purchase-list').on('keyup change', 'input[type="text"]',function(ev){
if(this.id === "purchase-freight-charge"){
this.value = "";
}
});
答案 1 :(得分:1)
您可以使用jQuery&#39; event.stopImmediatePropagation()
:
$("#purchase-freight-charge").on('keyup change', function( event ) {
event.stopImmediatePropagation();
});
// Future event bindings won't be executed for #purchase-freight-charge
// ...