Как переместить элемент вокруг дерева DOM, не затрагивая связанный JavaScript? - PullRequest
1 голос
/ 06 декабря 2009

В этом случае у меня есть iFrame с редактором mooEditable. Я клонирую элемент с идентификаторами, уничтожаю старый и вставляю новый, где это необходимо.

На данном этапе компонент Javascript больше не работает. Если есть общий способ сделать это, было бы замечательно, если бы вы поделились им.

ТИА

Ответы [ 3 ]

3 голосов
/ 06 декабря 2009

Я думаю, что правильный способ перемещения элемента в mootools таков:

$("newparent").adopt($("movingThis"));

в противном случае любые события и т. Д. Могут не работать. Вы также можете использовать cloneEvents (), если вам нужно сохранить / повторно применить их, но не должны. кроме того, это единственный способ гарантированно сохранить все отношения между элементом и другим javascript, а также сохранить любое хранилище элементов, которое у вас могло быть.

С уважением, код

2 голосов
/ 06 декабря 2009

Вы теряете события и поведение, связанное с элементами. Попробуйте использовать метод .clone , если вы этого еще не сделали. Прочтите документацию по нему и ознакомьтесь с функцией cloneEvents () и параметром keepid.

var myOrigEditor = $('myEditor');

//clone the element and its events
var myClonedEditor = myOrigEditor.clone(true, true).cloneEvents(myOrigEditor); 

// We're copying IDs as well, so remove the old one from the DOM first to
// remove any possibility of confusion.
myOrigEditor.remove();

// Put the cloned object where you want.
$('location').append(myClonedEditor);
2 голосов
/ 06 декабря 2009

Возможно, вы могли бы показать суть того, что вы делаете? В частности, что вы подразумеваете под "уничтожить старого"?

Здесь используется jQuery, но вы можете написать код на голое железо, если хотите:

var item = $('#item-id');  // item to move
var want = $('#new-div');  // container to receive it
item.remove();
want.append(item);

У вас могут быть проблемы с перемещением iframes (не уверен). Если это так, и если вы просто меняете два элемента, переместите другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...