2016-11-14 61 views
0

我已經在全球範圍內的功能作爲一個鏈接(<a>)處理:不能阻止默認鏈接行爲

function sort(e, field) { 
e.preventDefault(); 

/* sort process ... */ 
} 

而且我有一個在我的HTML頁面動態出現鏈接:

<a onclick="sort(this,'title')" href="addr" id="sortByTitle">Book title</a> 

儘管e.preventDefault();該鏈接無論如何執行默認操作。

注: 這是非常重要的,我的鏈接將通過AJAX加載。

回答

0

如果必須使用onclick屬性,return false;將阻止默認動作出現。

<a onclick="sort(this,'title'); return false;" href="addr" id="sortByTitle">Book title</a> 
+0

它不工作。反正同樣的問題。 – Ddd

+0

如果這不起作用,我認爲你在其他地方有一個錯誤。請創建一個可以複製您的問題的小提琴。 – andi

+0

它應該已被刪除e.preventDefault();在函數處理程序中,現在它正在工作。謝謝。 – Ddd

0

儘量只使用JavaScript沒有HTML的 「點擊」

function sort(e, field) 
{ 
e.preventDefault(); 

/* sort process ... */ 
} 
$("#sortByTitle").click(function(event) { sort(event, 'title'); }); 
+0

當您的JavaScript代碼執行時,鏈接將不會被加載。我通過ajax加載它。 – Ddd

0

必須使用的addEventListener聽點擊事件,像這樣:

document.getElementById("sortByTitle").addEventListener("click", function(event){ 
    event.preventDefault(); 
    alert("Hello!!"); 
}); 

看看這個小提琴: https://jsfiddle.net/rjnkuosL

編輯:

試試這個:

<a href="#" onclick="event.preventDefault(); sort();" />Book title</a> 
+0

當您的JavaScript代碼正在執行時,鏈接將不會被加載。我通過ajax加載它。 – Ddd

+0

你能提供整個代碼嗎? –

+0

檢查編輯@Ddd –