2011-03-23 83 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() 
})