ホームページ > 記事 > ウェブフロントエンド > JavaScript学習メモ(6) onDbClick時にonClickイベントがトリガーされないようにトリガーを遅延する
デフォルトでは、ダブルクリックイベントが発生するとクリックイベントがトリガーされますが、これが望ましくない場合があります。では、ダブルクリック時のクリックイベントのトリガーをブロックするにはどうすればよいでしょうか?インターネット上で流通している実行を遅らせる方法は次のとおりです。
1. clickTimer のようなグローバル タイマー変数を宣言します。
2. エージェントのクリック イベント処理がトリガーされます。デフォルトでは 220 ミリ秒後。 関数
3. ダブルクリック イベント内のタイマー変数を判定します。変数が NULL でない場合は、ダブルクリック イベントがトリガーされる前にクリック イベントがトリガーされたことを意味します。実際のクリック イベント処理関数は 220 ミリ秒後にトリガーされるため、この時点でタイマーが終了した場合、実際のクリック イベント処理関数は実行されません。
添付コード:
1var timerClick=null;
2//クリックイベントプロキシ
3function _onNodeClick(id){
4 //onNodeClickは実際のクリックイベント処理関数です
5 timerClick=window.setTimeout(" onNodeClick('" +id+"')",220);
6 }
7//ダブルクリックイベント処理関数
8function _onNodeDbClick(id){
9 if(timerClick){
10 window.clearTimeout(timerClick);
12}