Javascript 在jQuery UI对话框上启动TinyMce
Javascript 在jQuery UI对话框上启动TinyMce,javascript,jquery,tinymce,jquery-ui-dialog,Javascript,Jquery,Tinymce,Jquery Ui Dialog,#open_dialog上的单击事件触发一个jQuery UI对话框,其中包含一个到/ajax/request/url/的ajax请求 我想在从ajax请求返回的textarea上启动Tinymce 使用下面的代码,每次单击#open_dialog(ajax请求完成),我都会收到日志消息“ajax完成!”,但Tinymce仅在第一次打开对话框时加载。怎么会?如何在每次加载对话框时启动tinymce $('#open_dialog').click(function() { $.when($
#open_dialog
上的单击事件触发一个jQuery UI对话框,其中包含一个到/ajax/request/url/
的ajax请求
我想在从ajax请求返回的textarea上启动Tinymce
使用下面的代码,每次单击#open_dialog
(ajax请求完成),我都会收到日志消息“ajax完成!”,但Tinymce仅在第一次打开对话框时加载。怎么会?如何在每次加载对话框时启动tinymce
$('#open_dialog').click(function() {
$.when($.ajax("/ajax/request/url/")).done(function() {
console.log("ajax done!");
tinymce.init({selector:"textarea",
toolbar: "undo redo cut copy paste | bold italic underline | bullist numlist | table | styleselect | removeformat ",
plugins: "paste, table",
paste_word_valid_elements: "b,strong,i,em,h1,h2,table,tr,td,th",
menubar: false,
statusbar: true,
resize: "both"
});
});
});
最后通过删除旧DOM和旧编辑器解决了这个问题
ee_body
下面是文本区域的DOM id
$(document).ready(function() {
tinymce.init({
mode:"none",
toolbar: "undo redo cut copy paste | bold italic underline | bullist numlist | table | styleselect | removeformat ",
plugins: "paste, table",
paste_word_valid_elements: "b,strong,i,em,h1,h2,table,tr,td,th",
menubar: false,
statusbar: true,
resize: "both"
});
});
$('#open_dialog').click(function(){
//Remove old editors and DOM-elements
tinymce.EditorManager.execCommand("mceRemoveEditor", false, "ee_body");
$('#ee_body').remove();
// When ajax request to new email is done, load Tinymce
$.when($.ajax("/ajax/request/url/")).done(function() {
tinyMCE.execCommand("mceAddEditor", true, "ee_body");
});
});
谢谢,这对我帮助很大。