我在尝试实现一种使Undo和Redo按钮根据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
事件。在change
事件触发后,undomanager会异步更新,并在此之后发出input
事件。