2012-10-29 53 views
0

我正在製作一個圖像瀏覽器,在其中您通過單擊圖像本身來編輯圖像的名稱。然後一個tr會出現在它的底部,用一個表單來改變圖像名稱。除滑動動畫之外,它一切正常。當滑動完成時滑動jquery

首先我檢查是否有editRow已經顯示。如果是這樣,它將首先slideUp,然後從網站中刪除。之後,我爲點擊的圖像添加一個新的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

這是因爲您正在使用類editRow刪除所有元素。我supect你需要:

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

最後將其刪除,否則$(this).parent()指的是什麼,因爲this已經從DOM中刪除。

+0

不幸的是,它不工作。這樣.editRow將在最後被刪除。 – Tamara

+0

那有什麼問題?只有當前的editRow將被刪除。新的將停留。 –

+0

對不起。我認爲我在順序上做了錯誤的事情。它現在有效。謝謝! – Tamara