我想阻止打开网页的链接。所以我写了这个:
$("a").click(function(e) {
e.preventDefault()
}
太棒了!但这阻止了我的另一件事:
$(".toolbar a").click(function(e) {
...action...
}
当然,我可以通过一些测试将我的动作添加到第一个事件中,但有一种优雅的方法可以阻止仅 href事件的执行吗?
修改
事实上它很有用,对不起。请参阅@ raina77ow小提琴在这里工作:http://jsfiddle.net/HeFS6/
答案 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事件。如果防止点击默认,那么这就是你最终得到的结果。您应该使用更具体的选择器。