js鼠標單擊和雙擊事件沖突問題的快速解決方法
情況一
如果在一個DOM對象上同時綁定單擊(click)和雙擊(dblclick)事件,當(dāng)在這個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>
解釋:
第一次點擊記錄下點擊的時間,并設(shè)置單擊事件的Timeout(250ms比較合適),第二次點擊時判斷此時點擊的時間與上次點擊的時間間隔,如果小于指 定的事件間隔(比如250ms),則判斷為雙擊事件,并clear已設(shè)置的Timeout(避免觸發(fā)單擊事件)。
第二種:
<title>區(qū)分單擊和雙擊-www.dhdzp.com</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事件并存的解決方法
相關(guān)文章
JS如何實現(xiàn)網(wǎng)站中PC端和手機端自動識別并跳轉(zhuǎn)對應(yīng)的代碼
這篇文章主要介紹了JS如何實現(xiàn)網(wǎng)站中PC端和手機端自動識別并跳轉(zhuǎn)對應(yīng)的代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
關(guān)于微信jssdk實現(xiàn)多圖片上傳的一點心得分享
這篇文章主要介紹了關(guān)于微信jssdk實現(xiàn)多圖片上傳的一點心得分享,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12
JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹
這篇文章主要介紹了JavaScript判斷數(shù)據(jù)類型有幾種方法及區(qū)別介紹,本文給大家分享多種方法通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
javascript開發(fā)隨筆二 動態(tài)加載js和文件
js無非就是script標簽引入頁面,但當(dāng)項目越來越大的時候,單頁面引入N個js顯然不行,合并為單個文件減少了請求數(shù),但請求的文件體積卻很大2011-11-11

