2015-11-05 3 views
0

Я осуществил следующий код:задержка JQuery FADEOUT не работает в первый раз после загрузки страницы

$.ajax({ 
     type: 'POST', 
     data: "id="+id, 
     url: 'xyz.php', 
     async: false, 
     dataType: 'json', 
     success: function(data){     
      $('#message_'+id).html('Estás de acuerdo<span class="msg_order_close"></span>').show().fadeOut('slow').delay('5000'); 

     } 
}); 

Здесь я использовал fadeOut('slow').delay('5000');, чтобы скрыть его содержимое через 5 секунд. Но он не работает в первый раз после того, как страница перестала загружаться по первому запросу ajax. И это очень хорошо после первого запроса. Содержимое будет скрыто через 5 секунд. В первый раз новый добавленный контент будет скрыт немедленно.

Предложения принимаются.

+1

Не хотите, чтобы задержка появилась перед fadeOut: '.show(). Delay (5000) .fadeOut ('slow');' – tabz100

ответ

1

проблема заключается в том, что вы ждете после Hidding содержание. Поместите .delay() часть до функция fadeOut().

$.ajax({ 
     type: 'POST', 
     data: "id="+id, 
     url: 'xyz.php', 
     async: false, 
     dataType: 'json', 
     success: function(data){     
      $('#message_'+id).html('Estás de acuerdo<span class="msg_order_close"></span>').show().delay(5000).fadeOut('slow'); 

     } 
}); 

Кроме того, 5000 не является строкой, поэтому вы должны удалить кавычки.

0

Если вы хотите отложить до того гаснуть, вам нужно будет изменить порядок:

.delay(5000).fadeOut('slow') 

(Кредит @ tabz100 за то, что первый)

Теперь, если вы хотите, чтобы исчезнуть за длина 5 секунд, а затем использовать

.fadeOut(5000, 'slow')