我可以防止模糊事件发生吗?
我有一个简单的例子,我有一个input
字段,我把一个blur
和change
事件放在上面:
HTML
JS
$('input').change(function(e){ alert('change'); }); $('input').blur(function(e){ alert('blur'); });
如果触发change
事件,是否可以防止blur
事件发生?
一种方法是定义一个在触发更改事件时更改的布尔值,但我不喜欢它,有更好的方法吗?
这是一个你可以玩的例子。
解决了这个问题..
$('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'); }); });
使用.off
DEMO
$('input').change(function(e){ alert('change'); e.stopImmediatePropagation(); $(this).off("blur"); //$("input[name='test']").off("blur"); }); $('input').blur(function(e){ e.preventDefault(); alert('blur'); });
您可以使用
this.unbind('blur');
在onchange电话上
如果我理解正确,答案是使用event.preventDefault();
有关演示,请参见http://jsbin.com/welcome/52201/edit 。