【问题标题】:bootstrap alert not show before redirect重定向前不显示引导警报
【发布时间】:2017-02-07 20:01:55
【问题描述】:

在我的 ajax 响应成功时,我想先显示我的警报框,然后在 5 秒延迟后重新加载页面。

我正在使用此代码,但警告框中没有显示任何内容。页面重新加载后当前显示的警告框。

我的代码

success : function(data) {
    if(data.status == "success")
    {
        $(".flash_alert").html(data.msg);
        $('.flash_alert').delay(5000).fadeOut("slow");
        location.reload();
    }
    else
    {
        bootbox.alert(data.msg);
    }
},

警告框

<div class="flash_alert">

        <div class="alert alert-success alert-dismissible" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>

        </div>
</div>

警报框播空$(".flash_alert").html(data.msg); 不起作用

$('.flash_alert').delay(5000).fadeOut("slow"); 在重新加载之前也不起作用。

实际上我希望在 5 秒后显示警报框,当警报框向上滑动时,页面将重新加载

【问题讨论】:

    标签: javascript jquery html ajax twitter-bootstrap


    【解决方案1】:

    jquery 的 fadeOut 提供了一个回调作为第二个参数,该回调将在动画完成后运行,因此您想在动画完成后重新加载您可以将 location.reload() 移动到此回调函数:

    $('.flash_alert')
      .delay(5000)
      .fadeOut("slow", function() {
        location.reload();
      });
    

    【讨论】:

      【解决方案2】:

      问题是您延迟隐藏操作。但是程序的控制立即执行下一句location.reload()。所以什么也没有发生。 (实际上它会立即重新加载页面)

      相反,立即显示您的警报,并使用

      setTimeout(function(){
          location.reload();
      }, 5000);
      

      .delay() 方法来执行此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-20
        • 2015-05-25
        • 2013-06-25
        相关资源
        最近更新 更多