【发布时间】:2015-07-29 09:30:53
【问题描述】:
我正在监听 ACE 编辑器的更改事件以处理用户的输入,而有时我会通过 js 执行 setvalue()。
那么有没有办法避免setvalue()触发change事件呢?
【问题讨论】:
标签: javascript events ace-editor
我正在监听 ACE 编辑器的更改事件以处理用户的输入,而有时我会通过 js 执行 setvalue()。
那么有没有办法避免setvalue()触发change事件呢?
【问题讨论】:
标签: javascript events ace-editor
没有办法避免更改事件。 但是因为更改事件是同步触发的,所以您可以设置一个标志以不处理您创建的事件。类似的东西
var fromSetValue = false;
editor.on("change", function() {
if (!fromSetValue) {
// user input
}
})
fromSetValue = true;
editor.setValue("hi")
fromSetValue = false;
【讨论】:
change 在fromSetValue = false 之前被触发。因此,恐怕您的解决方案不能保证在所有情况下都能正常工作。
fromSetValue = false放在回调里面。