2010-04-25 83 views
0

我有這樣一系列的div:jQuery的克隆只有一次

<div id="available-posts"> 
    <div class="post" id="unique_id"> 
     <a href="#" class="addme">Add</a> Some text 
    </div> 

    <div class="post" id="unique_id"> 
     <a href="#" class="addme">Add</a> Some text 
    </div> 
</div> 

的UNIQUE_ID是每個div的不同數量。

現在我有一個新的空div這樣

<div class="related-posts"></div> 

而且我在那裏克隆項目。

事情是,我想檢查一個項目是否已被克隆。如果是我想阻止它被再次克隆。

這是我如何克隆項目:

// clone it 
$('.addme').live('click', function() { 
     $(this).parents('div.thepost').clone().fadeIn('normal').appendTo('#related-posts').find('a.addme').html('Remove').removeClass('addme').addClass('removeme'); 
     return false; 
}); 

// remove it 
$('.removeme').live('click', function() { 
     $(this).parents('div.thepost').fadeOut('normal', function() {$(this).remove(); }); 
     return false; 
}); 

換句話說,我希望克隆名單隻包含獨特的項目。不是例如同一篇文章的2個克隆。

*編輯:我使用現場直播第一個列表(可用職位)通過AJAX調用填充。

回答

1

只要繼續下去,並檢查是否有與已經這樣ID一個div:

$('.addme').live('click', function() { 
     var post = $(this).parents('div.thepost'); 
     var postId = post.attr("id"); 
     if ($("#related-posts").find("#" + postId).size()) return; 

     post.clone().fadeIn('normal').appendTo('#related-posts').find('a.addme').html('Remove').removeClass('addme').addClass('removeme'); 
     return false; 
}); 
+0

是很有道理的:)感謝名單 – tsiger 2010-04-25 13:07:29