为什么我不能用jQuery控制这个链接的click事件?

时间:2010-01-06 07:21:24

标签: jquery click

我非常了解jQuery。这个让我疯狂,因为它很简单。

我在<head>

中有这个
<script>
$(document).ready(function() {
    $(".delete_social").click(function() {
        return false;
    });
});
</script>

在身体中我有一系列链接:

<a class="delete_social" href="save_page.php?delete_social=true">Delete</a>

但是每次点击这些链接时,我都会选择PHP页面。为什么jQuery不拦截点击?任何理论?

PS我试过在click()函数中添加一个简单的alert()事件,没有任何变化,我尝试在jQuery $()调用中使用“a.delete_social”。两者都没有。

5 个答案:

答案 0 :(得分:2)

尝试此操作以防止加载URL:

$(".delete_social").click(function(e) {
    e.preventDefault();
    return false;
});

此外,您应该获得alert和其他代码以在单击处理程序内运行。如果不是,那么页面上的其他内容会导致一些奇怪的事情发生。

答案 1 :(得分:2)

如果动态加载这些链接,您需要使用$.live()来控制它们:

$(".delete_social").live("click", function(e){
  e.preventDefault();
  // do stuff
});

$.live()会使动态添加的元素遵循先前声明的规则。

答案 2 :(得分:1)

这是我在调试时要问的几个问题:

  • 您确定点击事件是否附加到锚点?
    • 尝试将脚本移至页面底部并附加点击事件,而不使用ready功能。
  • $(".delete_social").length是否大于0
  • 加载页面时是否有任何JavaScript错误?
  • jQuery是否正确加载?
    • $.fn.jquery是否会返回您正在使用的当前版本的jquery?
  • 请考虑使用event.preventDefault();

答案 3 :(得分:0)

试试这个:

<script>
$(document).ready(function() {
    $(".delete_social").click(function(event) {
        event.preventDefault();
    });
});
</script>

答案 4 :(得分:0)

检查其余的javascript。 return false;.preventDefault();应该可以解决问题。如果它们不起作用,通常意味着你的js中的其他地方出现了错误,你的浏览器永远不会到达那行代码。