0

我正在制作一个图像浏览器,您可以在其中通过单击图像本身来编辑图像的名称。然后 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();
        }
    });
4

1 回答 1

1

那是因为您要删除所有具有类 editRow 的元素。我想你需要:

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

最后删除它,因为否则$(this).parent()什么都没有,因为this已从 DOM 中删除。

于 2012-10-29T12:55:32.957 回答