阻止href打开链接但仍然执行其他绑定事件

时间:2012-09-06 11:37:46

标签: jquery events click preventdefault

我想阻止打开网页的链接。所以我写了这个:

$("a").click(function(e) {
    e.preventDefault()
}

太棒了!但这阻止了我的另一件事:

$(".toolbar a").click(function(e) {
    ...action...
}

当然,我可以通过一些测试将我的动作添加到第一个事件中,但有一种优雅的方法可以阻止 href事件的执行吗?

修改

事实上它很有用,对不起。请参阅@ raina77ow小提琴在这里工作:http://jsfiddle.net/HeFS6/

3 个答案:

答案 0 :(得分:29)

请改用return false。您可以看到以下代码here

​$("a").click(function() {
    return false;
});

$(".toolbar a").click(function() {
    alert("Do something");
});​

正如 @ raina77ow this article所指出的那样,使用return false与调用event.preventDefault()event.stopPropagation()相同。由于我过去在某些代码上没有return false时遇到麻烦,我总是建议它。

但最重要的是绑定顺序:你的最后一个绑定将是你第一次执行的代码。所以,要小心,然后去。

答案 1 :(得分:1)

代替e.preventDefault(),你试过return false吗?这也应该阻止浏览器默认行为。

答案 2 :(得分:0)

没有href事件。如果防止点击默认,那么这就是你最终得到的结果。您应该使用更具体的选择器。