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

Ben*_*t R 27 jquery events click preventdefault

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

$("a").click(function(e) {
    e.preventDefault()
}
Run Code Online (Sandbox Code Playgroud)

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

$(".toolbar a").click(function(e) {
    ...action...
}
Run Code Online (Sandbox Code Playgroud)

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

编辑

事实上它很有效,对不起.看@ raina77ow小提琴在这里工作:http://jsfiddle.net/HeFS6/

Eri*_*lli 30

return false改用.您可以在此处查看以下代码.

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

$(".toolbar a").click(function() {
    alert("Do something");
});?
Run Code Online (Sandbox Code Playgroud)

正如指出的@ raina77ow这篇文章,使用return false相同调用event.preventDefault()event.stopPropagation().由于我过去没有return false使用某些代码而遇到麻烦,我总是建议它.

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


Haz*_*ama 0

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