3

jQuery Click Event を制限したいのですが。

問題: 任意のキーをキーダウンし、マウスでクリックすると、クリックが発生します。

JS ゲーム開発者の場合は、次のことをお勧めします。

どんなキーが押されていても...そしてあなたがクリックした場合:クリックは発生しません

$.event.special.click絶対的かつ厳密に「マウスのみ」のクリックに備えるにはどうすればよいですか?

4

1 に答える 1

4

これは、回転ロックなどのセマフォを使用するだけで簡単に実行できます。

これは、キーダウンが押されている間にロックをインクリメントすることによって実現されます。キーアップが発生したら、そのロックを 0 に設定します。クリック イベント内で、ロックが 0 かどうかをテストします。0 でない場合は、クリック アクションを発行しないでください。

var SpinningLock = 0;

$('#target').keydown(function() {
  SpinningLock++;
});

$('#target').keyup(function() {
  SpinningLock = 0;
});

$('#target').click(function() {
  if( SpinningLock > 0) return;
  //TODO: implement click action
});
于 2012-07-30T00:04:37.660 に答える