我正在使用 codemirror 制作一個簡單的代碼編輯器。我處于最后階段,但發生了一個錯誤,我無法理解。
我有一個select帶有三個選項的 html 標簽:
<select class="language" id="lang" onclick="update()">
<option value="javascript">JavaScript</option>
<option value="python">Python</option>
<option value="python">C</option>
</select>
我的update()功能是:
function update() {
var select = $('#lang').val();
var editor = CodeMirror.fromTextArea($('#text'), {
mode: select,
theme: "blackboard",
});
}
update();
現在發生的情況是,每次我從下拉串列中選擇不同的選項時,都會在前一個下方添加一個新的代碼編輯器。
您知道我在代碼中哪里出了問題以及如何解決嗎?
uj5u.com熱心網友回復:
將您的 JS 更改為:
let editor;
function update() {
var select = $('#lang').val();
editor = editor ?? CodeMirror.fromTextArea($('#text'), {
theme: "blackboard",
});
editor.setOption('mode', select);
}
update();
這使得如果它editor已經存在,則不會再次創建它,而是重新使用它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418664.html
標籤:
