状況1
DOMオブジェクトでイベントをクリックしてダブルクリックする両方のイベントをバインドすると、このDOMオブジェクトでダブルクリックイベントが発生すると、最初のクリックがクリックイベントをトリガーします。2回目のクリックでは、ダブルクリックイベントまたはクリックイベント(IE7とFirefox)もトリガーされます。
解決:
<button onclick = "test(1)" ondblclick = "test(2)"> </button> <スクリプト言語= "javascript"> var i = 1; function test(n){i = n; var val = setimeout( "call();"、250); if(i == 2){clearTimeout(val);}} function call(){if(i == 1){alert( 'click');} else if(i == 2){alert( 'dblclick');}} </script>説明する:
最初のクリックは、クリックの時間を記録し、クリックイベントのタイムアウトを設定します(250msがより適切です)。 2回目のクリックをクリックするときは、クリックの時間と最後のクリックの時間間隔を決定します。指定されたイベント間隔(250msなど)よりも少ない場合、ダブルクリックイベントとして判断され、セットタイムアウトをクリアします(クリックイベントのトリガーを避けます)。
2番目のタイプ:
<title>クリックとダブルクリックとdouble click-ww.vevb.com </title> <script type = "text/javascript"> var flag = 0; function clicktest(){if(!flag){setimeout( "tt2();"、300); } flag ++;} function reset(){flag = 0;} function singleclick(){var result = document.getElementByIdx_x( 'result'); result.innerhtml = result.innerhtml+"クリック<br>"; reset();} function dobuleclick(){var result = document.getElementByIdx_x( 'result'); result.innerhtml = result.innerhtml+"クリック<br>"; reset();} function dobuleclick(){var result = document.getElementByIdx_x( 'result'); result.innerhtml = result.innerhtml+"クリック<br>"; reset();} function dobuleclick(){var result = document.getElementByIdx_x( 'result'); result.innerhtml = result.innerhtml+"クリック<br>"; reset();} function dobuleclick(){var result = document.getElementByIdx_x( 'result'); result.innerhtml = result.innerhtml+"dobule click <br>"; reset();}関数tt2(){if(flag == 1){singleclick(); } else {dobuleclick(); }} </script> </head> <body> <入力タイプ= "ボタン" ondblclick = "clicktest();" onclick = "clicktest();" value = "test test" /> <div id = "result"> < /div>JSマウスのクリックと上記のイベントをダブルクリックするという競合問題の迅速な解決策は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。