编程语言
首页 > 编程语言> > javascript-如何使用jQuery延迟事件传播

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