在这种情况下,我有一个包含iFrame的编辑器,mooEditable。我使用ID克隆元素,销毁旧元素并在需要时插入新元素。
Javascript组件在此阶段不再起作用。如果有一种通用的方法可以做到这一点,那么如果你分享它就会非常棒。
TIA
答案 0 :(得分:3)
我认为在mootools中移动项目的正确方法是:
$("newparent").adopt($("movingThis"));
否则,任何事件等都可能无效。如果你必须保存/重新应用它们,你也可以使用cloneEvents(),但不一定要这样做。此外,这是保证元素和其他javascript之间保持所有关系的唯一方法,同时保留您可能拥有的任何元素存储。
的问候, 结尾
答案 1 :(得分:2)
也许你可以展示你做什么的要点?具体来说,“摧毁旧的”是什么意思?
这使用jQuery,但如果你愿意,可以编写裸机代码:
var item = $('#item-id'); // item to move
var want = $('#new-div'); // container to receive it
item.remove();
want.append(item);
您可能无法移动 iframe (不确定)。如果是这样,如果您只是交换两个项目,请移动另一个项目。
答案 2 :(得分:2)
您正在丢失与元素相关的事件和行为。如果您还没有,请尝试使用.clone method。阅读它的文档,并了解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);