Jquery создать эффект после загрузки
У меня есть эта функция:
$(".delete").live('click', function() {
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;
$.ajax({
url: "<?php echo site_url('messages/delete') ?>",
type: "POST",
data: string,
cache: false,
success: function(){
commentContainer.slideUp('600', function() {$(this).remove();
$('.messages').fadeOut('2000', function(){$(this).remove();
$('#messages').load("<?php echo site_url('messages/show') ?>", function(){
$(this).slideDown('2000');
deleteConfirmSetup(qst); // Add function call here
});
});
});
}
});
return false;
});
Это работает до нагрузки. Это загрузка данных, но нет слайддауна - данные внезапно представляются. Как это исправить?
2 ответа
Решение
Вам нужно изменить следующую строку в вашем коде. Сначала скройте элемент, следующий метод применит эффект скольжения и покажет его.
$('#messages').load("<?php echo site_url('messages/show') ?>", function(){
$(this).hide().slideDown('2000'); //modify this
deleteConfirmSetup(qst); // Add function call here
});
Эта строка:
$(this).slideDown('2000');
должно быть commentContainer.slideDown('2000');
Я просто догадываюсь, используя ваши имена, хотя, если вы могли бы уточнить?