2011-03-23 84 views
1

是否可以解除超链接的默认行为?如何解除与jQuery的超链接

我从其他问题了解到,解绑只能用于绑定jQuery的函数。我想这可能是它无法正常工作的原因。

jsFiddle

+0

你的意思是href属性? 看到这个:http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery – 2011-03-23 15:26:44

回答

2

您可以防止使用默认行为,或通过从事件处理程序返回false

$('#some-link-id').click(function (event) 
{ 
    event.preventDefault(); 
}); 

// or 

$('#some-link-id').click(function() 
{ 
    return false; 
}); 

Demo →

当你怀疑,你不能使用unbind()因为没有监听器来解除绑定。

+0

非常干净的解决方案! – Tim 2011-03-23 15:54:21

0
$("#buttonId").click(function() { return false; }); 
3

$('myDiv').unbind('click') - 如果它是通过JavaScript

$('myDiv').attr('onclick','')迷上了 - 如果它有一个内联事件

$('myDiv').attr('href','javascript://') - 创建一个虚拟链接,什么也不做

+0

我不认为删除'onclick'属性也会删除侦听器。 – 2011-03-23 15:29:00

+0

谢谢,第三个选项适用于我的案例。 http://jsfiddle.net/Tim86/PRkwC/1/ – Tim 2011-03-23 15:45:38

0

,你可以尝试绑定所有事件类型并使用event.preventDefault()来停止默认行为是这样的:

$('a').bind('touchstart touchmove touchend mousedown click mouseup select',function(e){ 
e.preventDefault() 
})