【问题标题】:ace editor change event and setvalue王牌编辑器更改事件和设置值
【发布时间】:2015-07-29 09:30:53
【问题描述】:

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

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

【问题讨论】:

    标签: javascript events ace-editor


    【解决方案1】:

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

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

    【讨论】:

    • 我认为更改事件是异步触发的,如果我错了,请纠正我。因此,无法确保changefromSetValue = false 之前被触发。因此,恐怕您的解决方案不能保证在所有情况下都能正常工作。
    • 你需要把fromSetValue = false放在回调里面。
    • change 事件被同步触发
    • 请注意,在内容加载完成之前会触发更改事件,因此如果您尝试执行 setValue(); goto line# 它在更改侦听器中不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2013-03-14
    相关资源
    最近更新 更多