js鼠標單擊和雙擊事件沖突問題的快速解決方法
情況一
如果在一個DOM對象上同時綁定單擊(click)和雙擊(dblclick)事件,當在這個DOM對象上發(fā)生雙擊事件時,第一次點擊(click)會 觸發(fā)一次單擊(click)事件,第二次點擊(連續(xù)的)也會觸發(fā)雙擊(dblclick)事件,還是會觸發(fā)單擊(click)事件(IE7與 firefox)。
解決方法:
<button onclick="test(1)" ondblclick="test(2)"></button> <script language="javascript"> var i = 1; function test(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>
解釋:
第一次點擊記錄下點擊的時間,并設置單擊事件的Timeout(250ms比較合適),第二次點擊時判斷此時點擊的時間與上次點擊的時間間隔,如果小于指 定的事件間隔(比如250ms),則判斷為雙擊事件,并clear已設置的Timeout(避免觸發(fā)單擊事件)。
第二種:
<title>區(qū)分單擊和雙擊-www.dbjr.com.cn</title> <script type="text/javascript"> var flag=0; function clickTest() { if(!flag) { setTimeout("tt2();",300); } flag++; } function reset() { flag=0; } function singleClick() { var result=document.getElementByIdx_x('result'); result.innerHTML=result.innerHTML+"click<br>"; reset(); } function dobuleClick() { var result=document.getElementByIdx_x('result'); result.innerHTML=result.innerHTML+"dobule click<br>"; reset(); } function tt2() { if(flag==1) { singleClick(); } else { dobuleClick(); } } </script> </head> <body> <input type="button" ondblclick="clickTest();" onclick="clickTest();" value="click test" /> <div id="result"></div>
以上這篇js鼠標單擊和雙擊事件沖突問題的快速解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- JavaScript給按鈕綁定點擊事件(onclick)的方法
- js動態(tài)添加的DIV中的onclick事件簡單實例
- javascript 動態(tài)改變onclick事件觸發(fā)函數(shù)代碼
- IE8的JavaScript點擊事件(onclick)不兼容的解決方法
- JavaScript獲取onclick、onchange等事件值的代碼
- js動態(tài)添加onclick事件可傳參數(shù)與不傳參數(shù)
- javascript使用onclick事件改變選中行的顏色
- javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
- JS中雙擊和單擊事件沖突的解決方法
- JS實現(xiàn)鼠標單擊與雙擊事件共存
- JS實現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法
相關文章
js substr、substring和slice使用說明小記
關于substr、substring和slice方法區(qū)別的文章,網(wǎng)上搜到了許多,文章內(nèi)容也基本一致。而后,我將其中一篇文章中的代碼挪到本地進行了測試,發(fā)現(xiàn)測試結果和原文中的有些出入。2011-09-09解決uni-app微信小程序input輸入框在底部時,鍵盤彈起頁面整體上移問題
問題是這樣的input?獲取焦點時會自動調(diào)起手機鍵盤,設置?:adjust-position="true",會導致鍵盤彈起時頁面整體上移,這篇文章主要介紹了解決uni-app微信小程序input輸入框在底部時,鍵盤彈起頁面整體上移問題,,需要的朋友可以參考下2022-08-08Javascript 鍵盤事件的組合使用實現(xiàn)代碼
Javascript 鍵盤事件的組合使用實現(xiàn)代碼,需要的朋友可以參考下2012-05-05省市區(qū)三級聯(lián)動下拉框菜單javascript版
這篇文章主要給大家介紹了javascript實現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單,有需要的朋友可以參考下2015-08-08