我正在学习如何使用jQuery,并且我想了解在提交表单之前使用off()方法的目的是什么。例如,在下面的代码中,首先使用preventDefault()阻止表单发送,完成某些Ajax,完成后,最终提交表单。但为什么我需要在submit()之前使用off()?
$(document).ready(function() {
$('form[name="Payment"]').on('submit', function( e ) {
e.preventDefault();
AjaxCall();
$(document).ajaxStop(function() {
$('form[name="Payment"]').off('submit').submit(); // Once Ajax request are finished, submit the form.
});
});
});
答案 0 :(得分:1)
因为触发相同的事件会再次运行所有相同的事件处理程序代码。
将始终阻止默认值,将调用ajax ....然后将再次触发事件,并且您将无限循环而无需更改内容。
删除事件侦听器会使任何后续提交都使用浏览器默认进程
还有其他方法可以解决这个问题......但这个答案解释了所提出的问题