我有一个简单的示例,其中我有一个input
字段,并在其上添加了blur
和change
事件:
HTML
<input name="test" value=""/>
JS
$('input').change(function(e){
alert('change');
});
$('input').blur(function(e){
alert('blur');
});
如果blur
事件被触发,是否可以阻止change
事件发生?
一种方法是定义一个在触发更改事件时更改的布尔值,但我不喜欢它,有更好的方法吗?
Here是您可以使用的示例。
答案 0 :(得分:16)
this解决了问题..
$('input').change(function(e){
alert('change');
e.stopImmediatePropagation();
$(this).off("blur");
});
$('input').focus(function(e){
$(this).on("blur", function(e){
e.stopImmediatePropagation();
e.preventDefault();
alert('blur'); });
});
答案 1 :(得分:5)
使用.off
$('input').change(function(e){
alert('change');
e.stopImmediatePropagation();
$(this).off("blur"); //$("input[name='test']").off("blur");
});
$('input').blur(function(e){
e.preventDefault();
alert('blur');
});
答案 2 :(得分:1)
你可以使用
onchange调用 this.unbind('blur');
答案 3 :(得分:0)
如果我理解正确,答案是使用event.preventDefault();
有关演示,请参阅http://jsbin.com/welcome/52201/edit。