如何触发链接的“ondblclick”事件

时间:2010-10-04 13:32:48

标签: javascript

我想这样做:当您点击页面上的链接时,它会正常打开链接,但是当您双击该链接时,它会提醒链接的'href'属性。

但是,当我尝试双击链接时,它将始终打开链接。有什么想法吗?

6 个答案:

答案 0 :(得分:1)

也许这只是一个错字:您正在寻找的事件名为ondblclick,而不是ondbclick

答案 1 :(得分:1)

要避免链接被打开,您可能希望改为使用right-clicks

答案 2 :(得分:1)

首次点击双击后链接会打开,因此您需要添加一个时间延迟来确定哪个是时间延迟。以下是一些代码(使用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;
});

答案 3 :(得分:0)

双击即可双击。因此,它会触发click事件。

答案 4 :(得分:0)

因为onclick事件在ondblclick事件之前被触发。 这就是为什么ondblclick没有被执行的原因 - >首先加载链接。

答案 5 :(得分:0)

这很棘手,因为事件的顺序在所有浏览器中都不一样。查看此文章:http://unixpapa.com/js/mouse.html下双击的部分。

您可以取消单击链接的默认操作,并为click事件编写自己的处理程序。