ace 编辑器更改事件和设置值

Li_*_*Xia 3 javascript events ace-editor

我正在监听 ACE 编辑器的更改事件来处理用户的输入,而有时我会setvalue()通过 js 来处理。

那么有没有办法避免setvalue()触发change事件呢?

a u*_*ser 5

没有办法避免更改事件。但是因为 change 事件是同步触发的,所以您可以设置一个标志来不处理您创建的事件。就像是

var fromSetValue = false;
editor.on("change", function() {
    if (!fromSetValue) {
        // user input
    }
})

fromSetValue = true;
editor.setValue("hi")
fromSetValue = false;
Run Code Online (Sandbox Code Playgroud)

  • 我认为更改事件是异步触发的,如果我错了,请纠正我。因此,无法确保在“fromSetValue = false”之前触发“change”。因此,恐怕您的解决方案不能保证在所有情况下都有效。 (2认同)