javascript - 防止默认不起作用

标签 javascript jquery

我试图对某些超链接使用 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/

相关文章:

javascript - 将 String 值转换为 int 以在 highchart 中使用

javascript - 如何用纯 JavaScript 编写 $ ("#content").height() ?

javascript - 如何检查对象中是否存在数字数组

javascript - 接收 Zip 文件作为对 AJAX 请求的响应

javascript - javascript 函数中未捕获的类型错误

javascript - 将字符串转换为 javascript 代码

javascript - 如何在 angularJS 中使用 $document 服务?

javascript - 内部链接强制滚动到页面顶部

javascript - 动态加载时获取当前正在执行的js文件的url

jquery - 使用 Jquery .each() 函数隐藏图像,因为另一个图像显示在同一个类中