如何在双击时禁用链接,但只需单击即可访问它?

时间:2013-06-18 18:52:24

标签: javascript html onclick hyperlink

基本上我想要链接继续运行并单击一下但是在双重上我想要运行其他一些Javascript而不是链接。我需要的东西有点像PHP的die();函数。

HTML

<a id="link" href="'.$link.'">
   <div onclick="linktxt=this.innerHTML" ondblclick="show_msg_box()" class="more_item">' . $title . '</div>
 </a>

所以在双击的某个地方,我需要禁用该链接。

答案

我刚刚使用window.stop();来停止在dblclick上加载页面

<a id="link" href="'.$link.'">
   <div onclick="linktxt=this.innerHTML" ondblclick="window.stop(); show_msg_box();" class="more_item">' . $title . '</div>
 </a>

感谢您的快速回复!

4 个答案:

答案 0 :(得分:0)

如果你正在使用jQuery试试这个:

show_msg_box(){
   this.preventDefault();
   //stuff to do
}

或直接:

<div onclick="linktxt=this.innerHTML" ondblclick="this.preventDefault();" class="more_item">'

答案 1 :(得分:0)

如果你使用下划线,你可以去除事件处理程序:http://davidwalsh.name/function-debounce

答案 2 :(得分:0)

您可以使用jQuery的dblclick事件在双击操作中运行您想要的任何内容。

$('button').on('dblclick', handler)

或用于标记方法

http://jsfiddle.net/pjdicke/A6pUG/

var clicked = false;
$('button').on('click', function(){
    if (!clicked){

      alert('you can only click me once');
      clicked = true;

    } else {

        return false;

    }
});

答案 3 :(得分:0)

<a id="link" href="http://someurl.com">
    <div onclick="onSingleClick(); return false;" ondblclick="onDoubleClick(); return false;" class="more_item">ClickMe</div>
</a>

function onDoubleClick() {
    if (timer) {
        clearTimeout(timer);
        timer = null;
    }
    alert("DblClick!");
}

function onSingleClick() {
    if (!timer)
        timer = setTimeout(function() { alert('Single'); }, 500);
}

JSFiddle example