Jquery在加载后创建效果

时间:2011-09-20 11:11:54

标签: jquery jquery-load jquery-chaining

我有这个功能:

 $(".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;
});

它正在加载。它正在加载数据,但没有slideDown - 突然显示数据。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您需要修改代码中的以下行。首先隐藏元素,下一个方法将应用滑动效果并使其显示。

    $('#messages').load("<?php echo site_url('messages/show') ?>", function(){
         $(this).hide().slideDown('2000'); //modify this
         deleteConfirmSetup(qst); // Add function call here
    });        

答案 1 :(得分:0)

这一行:

$(this).slideDown('2000');

应该是commentContainer.slideDown('2000');

如果您可以澄清一下,我只是猜测使用您的ID名称?