16

我有一个简单的例子,我有一个input字段,我在上面放了一个blurchange事件:

HTML

<input name="test" value=""/>

JS

$('input').change(function(e){

 alert('change'); 

});

$('input').blur(function(e){

 alert('blur'); 
});

如果事件被触发,是否可以阻止blur事件发生?change

一种方法是定义一个在触发更改事件时更改的布尔值,但我不喜欢它,有更好的方法吗?

是一个你可以玩的例子。

4

4 回答 4

19

解决了这个问题..

 $('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'); });
});
于 2012-11-22T10:12:04.180 回答
4

利用.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'); 
});​
于 2012-11-22T09:33:58.447 回答
1

您可以使用

this.unbind('blur');在 onchange 通话中

于 2012-11-22T09:35:10.083 回答
0

如果我理解正确,答案是使用event.preventDefault(); 请参阅http://jsbin.com/welcome/52201/edit进行演示。

于 2012-11-22T09:40:38.320 回答