我想這樣做:當您單擊頁面上的鏈接時,它會正常打開鏈接,但是當您雙擊鏈接時,它會提醒鏈接的' href'屬性。如何觸發鏈接的「ondblclick」事件
但是,當我嘗試雙擊一個鏈接時,它會一直打開鏈接。任何想法?
我想這樣做:當您單擊頁面上的鏈接時,它會正常打開鏈接,但是當您雙擊鏈接時,它會提醒鏈接的' href'屬性。如何觸發鏈接的「ondblclick」事件
但是,當我嘗試雙擊一個鏈接時,它會一直打開鏈接。任何想法?
第一次點擊雙擊後鏈接將打開,因此您需要添加時間延遲以確定哪個是哪個。以下是一些代碼(爲簡潔起見,使用jQuery JavaScript庫)適用於除Internet Explorer之外的所有瀏覽器(try it out)。如果你能弄清楚爲什麼它沒有,我想知道。
$('a').click(function(event) {
var elem = $(this),
clickTimeout = elem.data('clickTimeout');
if(clickTimeout) {
// Double click; cancel the single click timeout
clearTimeout(clickTimeout);
elem.data('clickTimeout', null);
alert(elem.attr('href'));
} else {
// Might be a single click; wait and see
elem.data('clickTimeout', setTimeout(function() {
// Single click; timeout was not cancelled
elem.data('clickTimeout', null);
// Navigate to the link's URL
window.location.href = elem.attr('href');
}, 500));
}
// Stops propagation and prevents default action
return false;
});
雙擊是兩次點擊。因此,它觸發了點擊事件。
因爲onclick事件在ondbclick事件之前被觸發。 這就是爲什麼ondblclick沒有得到執行的原因 - >鏈接首先被加載。
也許這只是一個錯字:您正在尋找的事件被命名爲ondblclick
,而不是ondbclick
。
爲避免鏈接被打開,您可能需要改用right-clicks。
這很棘手,因爲事件的順序在所有瀏覽器中都不相同。看看這篇文章:http://unixpapa.com/js/mouse.html下的雙擊。
您可以取消單擊鏈接的默認操作併爲click事件編寫自己的處理程序。
greate solution! – wong2 2010-12-30 05:08:12