2010-04-25 3 views
0

У меня есть ряд дивы вроде этого: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 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 клона того же поста.

* edit: я использую live coz. Первый список (доступные сообщения) заполняется вызовом AJAX.

ответ

1

Просто идти вперед и проверить, есть ли DIV с уже такой ID:

$('.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

это имеет смысл :) Thanx – tsiger

Смежные вопросы