клонирование div завершено с целым объектом событий, а затем переименование идентификатора удаляет исходный div - PullRequest
0 голосов
/ 02 ноября 2011

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

Я использую jquery 1.6

Я могу успешно клонировать элемент, используя следующее, но когда я пытаюсь переименовать его, источник также переименовывается.

var $oldObject = $('#tabs-1');

var newObject = jQuery.extend(true, {}, $oldObject);
newObject.attr('id',"newid");

<div id="tabs-1">
<fieldset>
<div>
<input id="Radio1" type="radio" /> 
</div>
</fieldset>
</div>

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Ваш текущий код просто копирует структуру jQuery , представляющую ваш элемент, а не сам элемент. Следовательно, когда вы вызываете .attr(), это все еще оригинальный элемент, который изменяется.

Чтобы правильно клонировать элемент HTML и , его события делают следующее:

var $oldObject = $('#tabs-1');
var $newObject = $oldObject.clone(true);

$newObject.attr('id', 'newid');

Подробнее см. http://api.jquery.com/clone/.

0 голосов
/ 02 ноября 2011

Вы пробовали клонировать? http://api.jquery.com/clone/

...