我试图对某些超链接使用 PreventDefault 操作来防止它们被激活,而不是调用一些 ajax。然而它似乎不起作用。
我使用的代码如下: 我有以下代码:
$("#" + container_id + " a[id^=read_more_link]").click(function(event){
alert($(this).html());
event.preventDefault();
});
现在有趣的是警报框会触发,因此它肯定注册了单击事件,但它似乎无法识别 PreventDefault() 调用。
我尝试了一个简单的测试来简化我的代码,但它仍然不起作用:
<a id="read_more_link" data-article_id="1" href="news/1">Read More</a>
$("#read_more_link").on("click", function(event){
alert("test");
event.preventDefault();
});
警报框触发,但页面仍然遵循链接。
注意:如果我使用“Return False”但不使用 PreventDefault,它会起作用
最佳答案
看来您正在阻止具有某些父项的链接的默认操作,那么您的选择器应该如下所示:
我的html是:
<p id='aaa'>
<a id='read_more_link' href='#'>adf</a>
</p>
jquery:
var container_id = $('#aaa');
$("a[id^='read_more_link']", container_id).click(function(event) {
alert($(this).html());
event.preventDefault();
});
查看 fiddle :http://jsfiddle.net/EEZEe/
看看这是否对您有帮助。
关于javascript - 防止默认不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959261/