在我的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">×</span></button>
</div>
</div>
警告框播出空$(".flash_alert").html(data.msg);
无法正常工作
$('.flash_alert').delay(5000).fadeOut("slow");
在重新加载之前也无法正常工作。
实际上我希望在警报框滑动后5秒显示警告框,然后页面将重新加载
答案 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()
方法来做到这一点。