由于与MathJax相关的原因,我需要从Contenttools可编辑区域动态清除内容,然后将新元素附加到可编辑区域。当我将元素追加到区域时,Contenttools不会将其视为可编辑的。我在AJAX回调中使用以下jQuery代码:
$(".contentArea").empty().append($(response.data.content))
内容按我的需要显示,但不可编辑。谁能帮我?在加载新内容后,我还尝试使用editor.init(...)重新初始化编辑器,但这似乎也没有注册新内容。任何帮助是极大的赞赏!
最佳答案
好的,这听起来像是发生了什么事:当您请求内容的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();
});
});
关于javascript - ContentTools-通过jQuery附加数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37934496/