js鼠標(biāo)單擊和雙擊事件沖突問題的快速解決方法
情況一
如果在一個(gè)DOM對(duì)象上同時(shí)綁定單擊(click)和雙擊(dblclick)事件,當(dāng)在這個(gè)DOM對(duì)象上發(fā)生雙擊事件時(shí),第一次點(diǎn)擊(click)會(huì) 觸發(fā)一次單擊(click)事件,第二次點(diǎn)擊(連續(xù)的)也會(huì)觸發(fā)雙擊(dblclick)事件,還是會(huì)觸發(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>
解釋:
第一次點(diǎn)擊記錄下點(diǎn)擊的時(shí)間,并設(shè)置單擊事件的Timeout(250ms比較合適),第二次點(diǎn)擊時(shí)判斷此時(shí)點(diǎn)擊的時(shí)間與上次點(diǎn)擊的時(shí)間間隔,如果小于指 定的事件間隔(比如250ms),則判斷為雙擊事件,并clear已設(shè)置的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鼠標(biāo)單擊和雙擊事件沖突問題的快速解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JavaScript給按鈕綁定點(diǎn)擊事件(onclick)的方法
- js動(dòng)態(tài)添加的DIV中的onclick事件簡單實(shí)例
- javascript 動(dòng)態(tài)改變onclick事件觸發(fā)函數(shù)代碼
- IE8的JavaScript點(diǎn)擊事件(onclick)不兼容的解決方法
- JavaScript獲取onclick、onchange等事件值的代碼
- js動(dòng)態(tài)添加onclick事件可傳參數(shù)與不傳參數(shù)
- javascript使用onclick事件改變選中行的顏色
- javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
- JS中雙擊和單擊事件沖突的解決方法
- JS實(shí)現(xiàn)鼠標(biāo)單擊與雙擊事件共存
- JS實(shí)現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法
相關(guān)文章
js substr、substring和slice使用說明小記
關(guān)于substr、substring和slice方法區(qū)別的文章,網(wǎng)上搜到了許多,文章內(nèi)容也基本一致。而后,我將其中一篇文章中的代碼挪到本地進(jìn)行了測試,發(fā)現(xiàn)測試結(jié)果和原文中的有些出入。2011-09-09js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法
這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組是否存在相同元素的四種方法,js中是不能直接用==或者===來計(jì)算兩個(gè)數(shù)組是否相等的,那么就需要對(duì)數(shù)組的值進(jìn)行比較,需要的朋友可以參考下2023-07-07解決uni-app微信小程序input輸入框在底部時(shí),鍵盤彈起頁面整體上移問題
問題是這樣的input?獲取焦點(diǎn)時(shí)會(huì)自動(dòng)調(diào)起手機(jī)鍵盤,設(shè)置?:adjust-position="true",會(huì)導(dǎo)致鍵盤彈起時(shí)頁面整體上移,這篇文章主要介紹了解決uni-app微信小程序input輸入框在底部時(shí),鍵盤彈起頁面整體上移問題,,需要的朋友可以參考下2022-08-08JS實(shí)現(xiàn)網(wǎng)頁煙花動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)網(wǎng)頁煙花動(dòng)畫效果,點(diǎn)擊鼠標(biāo)煙花向四周擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Javascript 鍵盤事件的組合使用實(shí)現(xiàn)代碼
Javascript 鍵盤事件的組合使用實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-05-05省市區(qū)三級(jí)聯(lián)動(dòng)下拉框菜單javascript版
這篇文章主要給大家介紹了javascript實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)下拉框菜單,有需要的朋友可以參考下2015-08-08