0

同じ要素のmousdownハンドラー内の条件に基づいて、クリックハンドラーが起動しないようにしようとしています。このことを考慮:

var bool = true;

$('button').click(function() {
  console.log('clicked');
}).mousedown(function(e) {
  bool = !bool;
  if ( bool ) {
    // temporary prevent the click handler, how?
  }
});

ハンドラー間で相互通信するためのきちんとした方法はありますか? ここにビンがあります:http://jsbin.com/ipovon/1/edit

4

1 に答える 1

1

これは機能しますが、それがあなたが探していた答えであるかどうかはわかりません. 最初に設定した場合は、基本的にダブルクリック機能ですbool=false;

var bool = true;

$('button').mousedown(function(e) {
  bool = !bool;
  if ( bool ) {
    $(this).unbind('click');
  }
  else
  {
    $(this).click(function(){
        console.log('clicked');
    });
  }
});

アップデート

mousedownまた、必要に応じて、次のようにクリック機能を引き出すこともできます。

var bool = true;
function buttonClick(){
  console.log('clicked');
}
$('button').mousedown(function(e) {
  bool = !bool;
  if ( bool ) {
    $(this).unbind('click');
  }
  else
  {
    $(this).click(buttonClick);
  }
});
于 2013-02-13T15:23:46.747 に答える