2013-06-18 46 views
1

基本上我想要链接继续并单击运行,但双重我想要一些其他的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();停止页面加载onfocus此

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

感谢您的快速响应!

+3

'onfocus此= “show_msg_box();返回false;”' –

+0

不,仍然执行连接 –

+3

请注意,html中不允许div内的div。也许这就是你的浏览器的混淆...... – Christophe

回答

0

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

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

或直接:

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

仍然执行链接。有没有一个命令来停止页面加载或什么? –

+0

是的,该作品'window.stop()' –

+0

谢谢无论如何:)不知道为什么我没有想到更早 –

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; 

    } 
}); 
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