Ace 编辑器:第一个实例在创建第二个实例后变得无响应
Ace editor: First instance becomes unresponsive after a second one is created
我正在使用 ace 编辑器来完成我正在制作的一个小项目。
我想在我的页面上使用多个 ace 编辑器实例
我从一个将包含所有其他实例的全局变量开始
let editors = {};
let i = 0;
然后我像这样创建一个实例:
i++
editors[i] = ace.edit(`editor-${i}`);
editors[i].setTheme("ace/theme/cobalt");
editors[i].session.setMode("ace/mode/javascript");
此代码可以正常创建第一个实例。
然后是第二个实例,它起作用了。但是第一个实例变得反应迟钝。我无法编辑任何内容,无法再使用开发工具修改主题。没有任何效果。如何解决这个问题?我一直在尝试会话和所有选项,但似乎没有任何效果。
非常感谢
谨致问候,
超级开发
经过大量思考和尝试,我发现了问题。
我正在做的是使用
将一个 ace 实例附加到 div
div.innerHTML += `<div id="editor-${i}"></div>`;
事实证明实例在这样设置时停止了
相反,我必须在变量中创建一个元素。然后使用 .appendChild 将它附加到正文,现在它可以工作了。
我正在使用 ace 编辑器来完成我正在制作的一个小项目。
我想在我的页面上使用多个 ace 编辑器实例
我从一个将包含所有其他实例的全局变量开始
let editors = {};
let i = 0;
然后我像这样创建一个实例:
i++
editors[i] = ace.edit(`editor-${i}`);
editors[i].setTheme("ace/theme/cobalt");
editors[i].session.setMode("ace/mode/javascript");
此代码可以正常创建第一个实例。
然后是第二个实例,它起作用了。但是第一个实例变得反应迟钝。我无法编辑任何内容,无法再使用开发工具修改主题。没有任何效果。如何解决这个问题?我一直在尝试会话和所有选项,但似乎没有任何效果。
非常感谢
谨致问候, 超级开发
经过大量思考和尝试,我发现了问题。
我正在做的是使用
将一个 ace 实例附加到 divdiv.innerHTML += `<div id="editor-${i}"></div>`;
事实证明实例在这样设置时停止了 相反,我必须在变量中创建一个元素。然后使用 .appendChild 将它附加到正文,现在它可以工作了。