无法阻止默认链接操作

时间:2016-11-14 15:29:03

标签: javascript jquery event-handling

我在全局范围内有一个函数作为链接(<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加载我的链接非常重要。

3 个答案:

答案 0 :(得分:0)

尝试使用javascript而不使用html&#34;&#34; onclick&#34;

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

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

答案 1 :(得分:0)

您必须使用addEventListener来监听click事件,如下所示:

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

看看这个小提琴: https://jsfiddle.net/rjnkuosL

编辑:

试试这个:

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

答案 2 :(得分:0)

如果您必须使用onclick属性,return false;将阻止默认操作。

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