1

每当我使用preventDefault()时,我通常将它放在事件处理程序的顶部,如下所示:

$('#foo').on('click', function(e){
  e.preventDefault();
  // do stuff
});

将它放在事件处理程序的底部并在调用之前做一些事情有什么害处e.preventDefault()吗?

表达这个问题的另一种方式:您能否确定,通过在事件处理程序中包含e.preventDefault() 任何地方,您将永远不会跟进 - 例如,链接上的目标或提交表单?

我已经设置了一个你可以在这里玩的小提琴:http: //jsfiddle.net/tuanderful/SMdrN/

4

3 回答 3

3

是的..您放置声明的位置无关紧要。

只要e.preventDefault()在处理程序中调用,就不会触发默认操作

于 2013-11-13T07:33:35.993 回答
1

你可以把它放在你想要的任何地方,你甚至可以e.preventDefault();在一些 if 块内调用,它不会改变行为

于 2013-11-13T07:34:09.990 回答
0

只要代码没有出错,你在哪里调用preventDefault.

如果你把它放在代码的前面,即使脚本进一步崩溃,它也会阻止默认操作。

如果你把它放在代码的最后,它只会在脚本没有在途中崩溃的情况下阻止默认操作。

于 2013-11-13T07:41:58.753 回答