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 将它附加到正文,现在它可以工作了。