2012-03-02 44 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