重定向之前不显示引导警报

时间:2017-02-07 20:01:56

标签: javascript jquery html ajax twitter-bootstrap

在我的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秒显示警告框,然后页面将重新加载

2 个答案:

答案 0 :(得分:0)

jquery的fadeOut给出一个回调作为第二个参数,它将在动画完成后运行,因此你想在动画后重新加载location.reload()到这个回调函数:

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

答案 1 :(得分:0)

问题在于您延迟隐藏操作。但是程序 inmediatly 的控制执行下一句location.reload()。没有任何反应。 (好吧,它实际上会立即重新加载页面)

相反,请立即显示您的提醒,并使用

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

.delay()方法来做到这一点。