我有一个下拉列表,当进行选择时,将使用 ajax 将表单中的一堆元素插入到 DOM,在此表单中,我有一些文本区域,我希望将其设为 TinyMCE 文本区域。
我的 HTML 头中有这样的内容:
<script type="text/javascript">
tinymce.init({
selector: "textarea"
});
</script>
这是我用来添加一堆元素的 ajax 函数,它正在按我需要的方式工作。
function getSecFacility(facsecid, facid) {
$("#new_section_form").hide();
$.ajax({
type: "POST",
url: "facility_section_information.php",
data: 'facility_section_id='+facsecid+'&facility_id='+facid,
success: function(data){
$("#selected_fac_section").html(data);
}
});
//loadTinyMCEEditor();
};
我的页面上有其他文本区域不是由 ajax 插入的,它们显示为所见即所得编辑器没有问题,问题是当我添加新元素时。
我检查了其他几个问题试图找到“答案”,但没有任何效果。
我尝试创建一个名为loadTinyMCEEditor()
我在我的内心呼唤getSecFacility()
我的ajax调用后的函数。在此函数中,我尝试为这些新添加的文本区域重新初始化tinyMCE。
loadTinyMCEEditor()
看起来像这样:
function loadTinyMCEEditor() {
tinyMCE.init({
selector: "textarea"
});
tinyMCE.execCommand('mceAddControl', false, 'test'); //test is the class name I gave this textarea
//tinyMCE.execCommand('mceAddControl', true, 'test'); //tried setting the bool to true..even tried without these lines
}
无论我尝试什么,我似乎都无法让它与新插入的文本区域一起工作,如何才能使这些文本区域成为 TinyMCE 文本区域?
EDIT
从下拉列表中进行选择后,我现在可以查看新添加的文本区域的编辑器。然而,这只有效一次,如果我进行第二次选择,新的文本区域仅显示为纯文本区域。这是我在 ajax 函数中更改的内容:
function getFacSecFacility(facsecid, facid) {
$("#new_section_form").hide();
$.ajax({
type: "POST",
url: "facility_section_information.php",
data: 'facility_section_id='+facsecid+'&facility_id='+facid,
success: function(data){
$("#selected_fac_section").html(data);
loadTinyMCEEditor();
}
});
};
function loadTinyMCEEditor() {
tinymce.init({
selector: "textarea"
});
}
因此,在我做出选择后,这个 ajax 函数将运行并显示新的文本区域+其他表单信息,并且我重新初始化tinymce编辑器,但由于某种原因,这只工作一次。
我应该更改/做什么,以便可以从下拉列表中进行多项选择,以便每次新的文本区域都会显示为tinymce文本区域?