使用 jQuery replaceWith() 将 div 更改为带有 TinyMCE 的文本区域

Change div to textarea with TinyMCE using jQuery replaceWith()

我想用jQuery replaceWith() 用tinyMCE 编辑器更改一些文本,replaceWith() 函数本身没有问题,但我不知道如何将tinyMCE 编辑器实现到新文本区域。

<div id="div">Some text</div>

单击编辑按钮时,将更改为

<textarea id="new">Some text</textarea> (with tinyMCE editor)

我尝试了两种方法,

1.在替换之前初始化 tinymce 选择器 - 不工作

tinymce.init({
    selector: "#input_insertComment",

2。 - 使用 tinymce 实例(?) - 不工作

$('#div').replaceWith("<textarea id=new>some text</textarea>");
tinymce.initMCEexact("#new");

两个编辑器都没有实现。我怎样才能做到这一点?

(在同一页面,我有另一个文本区域的 tinymce 编辑器。)

当您调用 tinymce.init() 时,它只会影响您调用 init() 时存在于 DOM 中的项目。如果稍后向页面添加元素,init() 调用将不会用 TinyMCE 替换它们。

您想要的顺序是...

  1. 将文本区域添加到 DOM
  2. 调用 tinymce.init() 并在 init 中使用 selector 选项来定位您刚刚添加到页面的文本区域。

我不知道 tinymce.initMCEexact() 作为一个实际的 API 调用,它曾经是 TinyMCE 的一部分 - 它肯定不是 TinyMCE 4 的一部分。