我正在创建一个图像浏览器,您可以通过单击图像本身来编辑图像的名称。然后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();
}
});
答案 0 :(得分:1)
这是因为您正在使用类editRow删除所有元素。我认为你需要:
$('.editRow').slideUp(300, function(){
...
$(this).remove();
最后删除它,因为否则$(this).parent()
没有引用任何内容,因为this
已从DOM中删除。