16

inputフィールドがあり、それにイベントを配置blurするchange簡単な例があります。

HTML

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

JS

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

 alert('change'); 

});

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

 alert('blur'); 
});

イベントがトリガーされたblur場合、イベントの発生を防ぐことはできますか?change

1つの方法は、変更イベントがトリガーされたときに変更されるブール値を定義することですが、私はそれが好きではありません。より良い方法はありますか?

これがあなたが遊ぶことができる例です。

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');オンチェンジコールで

于 2012-11-22T09:35:10.083 に答える
0

私があなたを正しく理解しているなら、答えは使用することです。デモについてはhttp://jsbin.com/welcome/52201/editevent.preventDefault();を 参照してください。

于 2012-11-22T09:40:38.320 に答える