2010-08-21 4 views
0

У меня есть следующий простой код, где я дважды щелкните DIV (с классом контейнера), и это просто клонирует себя в другой DIV (с идентификатором оболочки-оболочки) :Клонирование DIV, а затем клонировать снова от ребенка

HTML

<span class="container">div one</span> 

<div id="containment-wrapper"> 
</div> 

Jquery

$(".container").dblclick(function() { 

     $(this).clone().appendTo('#containment-wrapper'); 
}); 

Когда я дважды щелкаю исходный div, он клонирует себя и помещает div внутри оболочки-оболочки, но когда я дважды кликнул клонированный div, он ничего не делает, хотя у него есть класс = контейнер, почему это происходит? Я пробовал много разных способов клонировать его, но ничего не работало.

ответ

2

Это потому, что обработчик событий не клонирован. Используйте вместо delegate:

$(".container").delegate("","dblclick",function() { 
    $(this).clone().appendTo('#containment-wrapper'); 
}); 
2

Поскольку dblclick не ограничен новым div. То, что вы хотите достичь можно легко сделать с live

$(".container").live('dblclick', function() { 

     $(this).clone().appendTo('#containment-wrapper'); 
}); 
1

Поскольку вы динамически добавлять теги Div они не будут автоматически связаны с .dblclick функции вы указали. Использование обработчика событий live является одним из способов решения этой проблемы.