出于与MathJax相关的原因,我需要动态清除Contenttools可编辑区域中的内容,然后将新元素附加到可编辑区域。当我将元素追加到该区域时,Contenttools不会将它们视为可编辑的。我在AJAX回调中使用了以下jQuery代码:
$(".contentArea").empty().append($(response.data.content))
内容按我的意愿显示,但不可编辑。谁能帮我?我也尝试在加载新内容后使用editor.init(...)重新启动编辑器,但似乎也没有注册新内容。非常感谢任何帮助!
答案 0 :(得分:1)
好吧,听起来发生的事情是,当您请求内容的Tex版本替换当前MathML时,编辑器已启动,因此当您替换可编辑区域内的内容时,它会直播导致编辑器和页面不同步。
我不能轻易地针对您的具体情况尝试这一点,但以下代码概述了我将采取的初步方法来解决您所描述的内容,如果您让我知道您是如何进行的,如果有的话修改是必需的我会很高兴地更新它。
var editor = ContentTools.EditorApp.get();
// Add a flag to the editor that indicates when the tex version of the content
// has loaded.
editor.texLoaded = false;
// Capture the start event against the editor, the first time around we load
// the tex version of our content, the second time around we intialize the
// editor as normal.
editor.addEventListener('start', function(ev) {
// Has the Tex content been loaded, if so do nothing we're ready to start
// editing.
if (this.texLoaded) {
return;
}
// If the Tex content hasn't been loaded then cancel the start event
ev.preventDefault();
// Load the Tex content
$.ajax({
url: "/get-tex?..."
}).done(function (response) {
// From the response update the contents of the editable region
$('.contentArea')[0].innerHTML = response.data.content;
// Flag that the tex version of the content is now in place
this.texLoaded = true;
// Start the editor
editor.start();
});
});
答案 1 :(得分:0)
正在加载内容,但您无法编辑? 试试这种方式
$(".contentArea").empty().append($(response.data.content));
//Reset the editable function