javascript-如何使用jQuery延迟事件传播
作者:互联网
我想在用户提交表单之后但离开页面之前显示注释.
目前,我正在使用此代码(简化的示例代码):
$('form').submit(function(event) {
$('.note').show();
setTimeout(function() {
$('form').unbind().submit();
}, 2000);
return false;
});
这行得通,但似乎不太好.还有其他方法,例如$.delayPropagation(2000);函数吗?
PS:笔记覆盖了整个屏幕,因此用户在此期间将无法再次提交.
解决方法:
这是延迟操作的适当方法.
您实际上可能想先取消绑定该事件以停止多个呼叫(您当前有一个2秒的窗口,他们可以在其中再次提交).
作为标准做法,您应该只运行一次jQuery选择器(使用temp var保存结果). $前缀也是命名jQuery变量的另一个标准.现在,这意味着下面的代码将分别支持页面上的多种形式.
$('form').submit(function(event) {
var $form = $(this);
$('.note').show();
$form.unbind()
setTimeout(function() {
$form.submit();
}, 2000);
return false;
});
您必须立即返回false以避免阻塞浏览器.
笔记:
>一种替代方法是使用Ajax进行表单发布,然后进行延迟,然后转到新页面
> setTimeout是延迟代码执行的最ubiquitous方法.
注意:我只是想在帖子中使用无处不在的术语:)
标签:event-propagation,delay,javascript,jquery 来源: https://codeday.me/bug/20191029/1956562.html