2017-02-07 2 views
0

В моем ответе на ajax-ответ я хочу сначала показать свое окно оповещения, после чего будет перезагружена страница с 5-секундной задержкой.bootstrap alert not show перед перенаправлением

Я использую этот код, но ничего не отображается в поле alert box.and, которое отображается в настоящее время после перезагрузки страницы.

Мой код

коробка
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 сек показано окно предупреждения, когда окно предупреждения скользнула вверх, то страница будет перезагружать

ответ

0

JQuery-х fadeOut дает обратный вызов в качестве второго параметра, который будет выполняться после того, как анимация завершена, так что вы хотите, чтобы перезагрузить после анимации вы может двигаться location.reload() этой функции обратного вызова:

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

Проблема заключается в том, что вы задерживая шкура действий. Но контроль над программой inmediatly выполняет следующее предложение location.reload(). Так что ничего не происходит. (Ну, это на самом деле перезагружает страницу сразу)

Вместо показывать ваше предупреждение без каких-либо задержек, и использовать

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

Или .delay() подход, чтобы сделать это.

Смежные вопросы