javascript同一個元素同時綁定click和dblclick事件(同時單擊和雙擊事件)

來源:互聯網
上載者:User

原則上盡量不要在同一DOM元素上綁定單擊和雙擊事件,不可避免會相互影響。

我碰到的現象是:在同一DOM元素上綁定了click和dblclick(用的jquery),在firefox下,雙擊事件有時候會觸發,有時候不行,猜想可能是單擊事件的影響造成(在IE下面雙擊事件能觸發)。百度了一些內容:IE對雙擊事件的處理和其它瀏覽器有些不同

IE下雙擊觸發事件:

mousedown, mouseup, click, mouseup, dblclick

而在ff下:

mousedown, mouseup, click, mousedown, mouseup, click, dblclick

無奈之下,只有在使用者單擊的時候,記住一個狀態,給一個定時器重設這個狀態,如果在定時器重設狀態之前又有click觸發,就調用 雙擊事件處理函數

clickInterval = 600;

clicked = false;

clearTimeout(clickTimer);

clickTimer = setTimeout(function(){
//alert("clickTime:" + clickTime);
clicked = false;
//clickTime = 0;
}, clickInterval);

if (clicked)

//dblclicked event

clicked = true;

上面的代碼在IE下面會有問題,因為IE在雙擊時,只觸發了一次clicked(點擊3次,IE下會有雙擊的效果),無奈之下,只有判斷瀏覽器類型,然後綁定一個雙擊事件了。判斷IE瀏覽器用jquery的$.browser.msie(返回true,false)

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。