2012-03-02 22 views
4

我有2个(或更多)<textarea>用TinyMCE-3.4.8-jQuery在<ul>中初始化。用jQuery移动TinyMCE

<ul id="content"> 
<li id="bc1"><textarea id="text1" class="blockcontent"></textarea></li> 
<li id="bc2"><textarea id="text2" class="blockcontent"></textarea></li> 
<li id="bc3"><textarea id="text3" class="blockcontent"></textarea></li> 
</ul> 

“块内容”将被初始化为$('.blockcontent').tinymce({...});

如果我在#bc1后面插入#bc3与$('#bc3').insertAfter($('#bc1'));,内容将被删除。 #text3 textarea的内容不再适用。它消失了。 如何解决这个问题?

我也尝试克隆#bc3 $('#bc3').clone(true, true),在#bc1之后插入克隆并删除原来的#bc3。要修复“jQuery Input Clone Bug”,我使用了jquery.fix.clone jQuery plugin。但克隆方法也与insertAfter方法具有相同的问题。也许insertAfter执行相同的操作:clone和remove。不知道,不管。如果我先删除原始文件,然后插入克隆,则TinyMCE在克隆中不可用,但克隆的textarea的内容可用。如果我第一次插入克隆然后删除原始TinyMCE可用,但不是原始内容。

Br

回答

4

在DOM中移动tinymce不起作用,因为您希望在此处使用。 在移动它之前,您需要先拨打mceRemoveControl,然后在移动编辑器源元素后,可以重新初始化编辑器。

克隆将产生相同的ID。 Tinymce不允许使用相同的ID。最好确保你的源html元素有一个唯一的id(不是none)。

+1

好的,thx。这工作。在insertAfter之前,我执行tinyMCE.execCommand('mceRemoveControl',false,'text3');'。在'insertAfter'之后,我重新初始化没有TinyMCE的所有textareas的TinyMCE。 – TheFox 2012-03-02 15:39:37