상황 1
DOM 객체에서 클릭 및 더블 클릭 이벤트를 모두 바인딩하면이 DOM 객체에서 두 번 클릭 이벤트가 발생하면 첫 번째 클릭이 클릭 이벤트가 트리거되거나 두 번째 클릭은 두 번 클릭 이벤트 또는 클릭 이벤트 (IE7 및 Firefox)도 트리거됩니다.
해결책:
<버튼 onclick = "test (1)"ondblClick = "test (2)"> </button> <script language = "javaScript"> var i = 1; 함수 테스트 (n) {i = n; var val = settimeout ( "call ();", 250); if (i == 2) {cleartimeout (val);}} function call () {if (i == 1) {alert ( 'click');} else if (i == 2) {alert ( 'dblclick');}} </script>설명하다:
첫 번째 클릭은 클릭 시간을 기록하고 클릭 이벤트의 시간 초과를 설정합니다 (250ms가 더 적합). 두 번째 클릭을 클릭하면 클릭 시간과 마지막 클릭의 시간 간격을 결정하십시오. 지정된 이벤트 간격 (예 : 250ms)보다 작은 경우 더블 클릭 이벤트로 판단되고 설정 시간 초과를 지우십시오 (클릭 이벤트 트리거링 방지).
두 번째 유형 :
<title> Click과 Double Click www.vevb.com을 구별합니다. </title> <script type = "text/javaScript"> var flag = 0; function clicktest () {if (! flag) {settimeout ( "tt2 ();", 300); } flag ++;} function reset () {flag = 0;} 함수 singleclick () {var result = document.getElementByIdx_x ( 'result'); result.innerhtml = result.innerhtml+"click <br>"; Reset ();} 함수 doBuleClick () {var result = document.getElementByIdx_x ( 'result'); result.innerhtml = result.innerhtml+"click <br>"; Reset ();} 함수 doBuleClick () {var result = document.getElementByIdx_x ( 'result'); result.innerhtml = result.innerhtml+"click <br>"; Reset ();} 함수 doBuleClick () {var result = document.getElementByIdx_x ( 'result'); result.innerhtml = result.innerhtml+"click <br>"; Reset ();} 함수 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 = "클릭 테스트" /> <div id = "result"> < /div>JS 마우스의 충돌 문제에 대한 빠른 해결책은 위의 클릭 클릭 및 두 번 클릭 한 이벤트는 내가 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.