Slideup完成时滑动jquery

时间:2012-10-29 12:53:29

标签: jquery slidedown slideup

我正在创建一个图像浏览器,您可以通过单击图像本身来编辑图像的名称。然后tr会出现在它的底部,并带有一个表单,您可以在其中更改图像名称。这一切都很好,除了幻灯片动画。

首先,我检查是否已显示editRow。如果是,它将首先滑动,然后从网站上删除。之后,我为点击的图像添加了一个新的editRow。我必须有滑动动画。我该如何正常使用?现在幻灯片工作正常。它向上滑动并删除editRow div。在那之后,什么都没发生。

div也只是第一次出现。

$('.imgItem').click(function() {
        imgID = $(this).parent().find('div').attr('id').replace(/image/, '');;
        if($('.editRow').length){
            $('.editRow').slideUp(300, function(){
                $('.editRow').remove();
                $(this).parent().parent().parent().after('<tr class="editRow"><td class="editItem" colspan="4"></td></tr>');
                $('.editRow').hide();
                $('.editItem').load("ajax.editImage.php",{imgID:imgID});
                $('.editRow').slideDown().show();
            });         
        }else{
            $(this).parent().parent().parent().after('<tr class="editRow"><td class="editItem" colspan="4"></td></tr>');
            $('.editRow').hide();
            $('.editItem').load("ajax.editImage.php",{imgID:imgID});
            $('.editRow').slideDown().show();
        }
    });

1 个答案:

答案 0 :(得分:1)

这是因为您正在使用类editRow删除所有元素。我认为你需要:

$('.editRow').slideUp(300, function(){
            ...
            $(this).remove();

最后删除它,因为否则$(this).parent()没有引用任何内容,因为this已从DOM中删除。