每当我使用preventDefault()时,通常都会将它放在事件处理程序的顶部,如下所示:
$('#foo').on('click', function(e){
e.preventDefault();
// do stuff
});把它放在事件处理程序的底部,并在调用e.preventDefault()之前做一些事情,会有什么害处吗?
另一种解释这个问题的方法是:通过将e.preventDefault()包含在事件处理程序中的任何地方,您将永远不会遵循--比如说,链接上的目标或表单的提交?
我设置了一个小提琴,你可以在这里玩:http://jsfiddle.net/tuanderful/SMdrN/
发布于 2013-11-13 07:41:58
只要代码中没有出错,那么在哪里调用preventDefault并不重要。
如果您将它放在代码中的第一位,那么即使脚本进一步崩溃,它也会防止默认操作。
如果你把它放在最后的代码中,只有在脚本没有崩溃的时候,它才会阻止默认的操作。
发布于 2013-11-13 07:33:35
是的..你把这句话放在哪里是不相关的。
只要在处理程序中调用e.preventDefault(),默认操作就不会被触发。
发布于 2013-11-13 07:34:09
你可以把它放在任何你想要的地方,你甚至可以在一些if块中调用e.preventDefault();,它不会改变行为
https://stackoverflow.com/questions/19947924
复制相似问题