我在尝试实现一种方法时遇到一些问题,根据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状态的事件。
答案 0 :(得分:3)
使用input
事件代替change
事件。在change
事件触发后,undomanager会更新为异步,并在此之后发出input
事件。