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');

Я просто догадываюсь, используя ваши имена, хотя, если вы могли бы уточнить?

Другие вопросы по тегам