Я использую codemirror в webapp, который я создаю, и у меня есть несколько редакторов на странице. Также есть кнопки отмены и повтора, и они работают. Однако я могу только установить один редактор для отмены, если я не использую оператор if, чтобы определить, какой из них сосредоточен, а затем примените функцию отмены или повтора к соответствующему текстовому полю. Я пробовал несколько вариантов как в jQuery, так и в JavaScript, но безрезультатно. Это один из блоков кода, который я пытаюсь получить на работу. Фактическая переменная, содержащая настройку codemirror, называется «codeeditor1», «# editor1» является идентификатором текстового поля.Обнаружение фокуса редактора codemirror
if ($("#editor1").is(':focus')) {
undo.addEventListener('click', function() {
codeeditor1.undo();
}, false);
redo.addEventListener('click', function() {
codeeditor1.redo();
}, false);
}
Я также попытался это в соответствии с документацией метода «cm.hasFocus()» = логическое значение.
if (codeeditor1.hasFocus() == true) {
undo.addEventListener('click', function() {
codeeditor1.undo();
}, false);
redo.addEventListener('click', function() {
codeeditor1.redo();
}, false);
}
Я также попробовал это ради логического размещения кода, но до сих пор не повезло с ним. Возможно, это ошибка в методе codemirror?
undo.addEventListener('click', function() {
if (codeeditor1.hasFocus() == true) {
codeeditor1.undo();
}
}, false);
redo.addEventListener('click', function() {
if (codeeditor1.hasFocus() == true) {
codeeditor1.redo();
}
}, false);
Спасибо за ваш ответ, я пробовал это, но он все еще не регистрируется. Я прошел документацию, и в ней говорится, что есть метод cm.hasFocus(), но я не могу понять, что это правильно. – AlphaDaemon