每当我使用preventDefault()
时,我通常将它放在事件处理程序的顶部,如下所示:
$('#foo').on('click', function(e){
e.preventDefault();
// do stuff
});
将它放在事件处理程序的底部并在调用e.preventDefault()
之前做一些事情会有什么害处吗?
另一种表达这个问题的方法:你能否确定,通过在事件处理程序中包含e.preventDefault()
任何地方,你永远不会完成 - 比如说,链接上的目标或提交表格?
我已经设置了一个你可以在这里玩的小提琴:http://jsfiddle.net/tuanderful/SMdrN/
答案 0 :(得分:3)
是..您放置声明的地方无关紧要。
只要在处理程序中调用e.preventDefault()
,就不会触发默认操作
答案 1 :(得分:1)
你可以把它放在任何你想要的地方,你甚至可以在一些if块中调用e.preventDefault();
,它不会改变行为
答案 2 :(得分:0)
只要代码中没有任何问题,您调用preventDefault
的位置无关紧要。
如果你把它放在代码中,它将阻止默认操作,即使脚本进一步崩溃。
如果你把它放在代码的最后,它只会阻止默认操作,如果脚本在途中没有崩溃。