javascript - Ace JS 编辑器 - 在编辑器中启用/禁用撤消和重做按钮

标签 javascript ace-editor

我在尝试实现一种方法来根据 UndoManager 自动启用或禁用我的撤消和重做按钮时遇到了一些问题。

var editor = ace.edit(editorElement);

editor.on('change', function (e) {
  var um = editor.getSession().getUndoManager();
  $('button.undo').attr('disabled', um.hasUndo() ? false : true );
  $('button.redo').attr('disabled', um.hasRedo() ? false : true );
});

当您对文档进行第一次更改时,它不会更改按钮的禁用状态。此时 UndoManager 还没有被告知发生了变化。

我没有看到任何适合测试 UndoManager 状态的事件。

最佳答案

使用input 事件代替change 事件。 undomanager 在 change 事件触发后异步更新,然后 input 事件被触发。

关于javascript - Ace JS 编辑器 - 在编辑器中启用/禁用撤消和重做按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493065/

相关文章:

javascript - 无法让语法突出显示在 "Ace"文本编辑器中工作

javascript - 如何访问 JavaScript 对象的数组属性

javascript - 如何使用remoteFunction将JavaScript变量传递给Grails Controller

javascript - 如何在 Angular 6 中使用新的 RXJS 6 管道/映射返回解析数据?

javascript - ACE编辑器统计字符数?

javascript - 确定 JavaScript 语法在 ACE 的更改处理程序中是否有效

javascript - 我们如何在 webgl 的两个 Canvas 中显示相同的对象?

javascript - 打印数组元素并将它们添加到 javascript 中

javascript - ACE 编辑器中的高级自动完成功能

javascript - 使用 Canvas 元素作为文本区域