2015-05-27 37 views
1

我有一些問題試圖實現一種方式,使我的撤銷和重做按鈕自動啓用或禁用基於UndoManager。王牌JS編輯器 - 啓用/禁用編輯器中的撤消和重做按鈕

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的狀態的任何事件。

回答

3

使用input事件,而不是change事件。在change事件觸發後,undomanager會更新異步,並在此之後發出input事件。

+0

哈!我早些時候嘗試過「輸入」,但我有其他錯誤,我從未回過頭來。非常感謝,它效果很好! –