打破.preventDefault()

时间:2013-11-13 07:32:40

标签: javascript jquery

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

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

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

另一种表达这个问题的方法:你能否确定,通过在事件处理程序中包含e.preventDefault() 任何地方,你永远不会完成 - 比如说,链接上的目标或提交表格?

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

只要代码中没有任何问题,您调用preventDefault的位置无关紧要。

如果你把它放在代码中,它将阻止默认操作,即使脚本进一步崩溃。

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