30

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

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

这太棒了!但这阻止了我的其他活动:

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

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

编辑

事实上它有效,对不起。请参阅@raina77ow fiddle 在这里工作:http: //jsfiddle.net/HeFS6/

4

3 回答 3

32

改为使用return false。您可以看到下面的代码在这里工作。

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

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

正如@raina77ow这篇文章中指出的那样, usingreturn false与调用event.preventDefault()and also相同event.stopPropagation()。由于过去我在某些代码上遇到了麻烦return false,所以我总是建议它。

但这里最重要的是绑定顺序:您的最后一个绑定将是您第一个执行的代码。所以,照顾好它,走吧。

于 2012-09-06T11:44:04.123 回答
1

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

于 2012-09-06T11:44:01.567 回答
0

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

于 2012-09-06T11:41:34.363 回答