【问题标题】:Quill 'text-changed' event firing on data load数据加载时触发 Quill 'text-changed' 事件
【发布时间】:2018-06-01 08:41:22
【问题描述】:

我希望向我的 Quill 富文本框添加功能,如果用户对富文本框进行更改,那么如果他们尝试离开页面,则会提示他们保留或放弃更改。我正在创建我的文本更改事件,如下所示:

quill.on('text-change', function (delta, oldDelta, source) {
    quillChanged = true;
});

这很好。如果文本发生更改,则触发事件,更改我的变量并从那里处理事情。但是,当富文本框在页面加载时自动填充时,也会触发事件触发器。这是我不想要的。

我看到了一个 WPF 示例,其中存在类似(非 Quill)问题,答案是使用 this.IsLoaded 检查。我想知道这里是否有类似的羽毛笔,或者是否有其他更实用的想法?我曾考虑创建隐藏字段来存储每个文本框的原始页面加载值,但这一切都开始有点混乱。

【问题讨论】:

    标签: jquery jquery-events quill textchanged


    【解决方案1】:

    事实证明,这是填充字段方式的问题 - 而不是触发器本身。

    填充编辑器的代码是:

    $j('.ql-editor', container)[0].innerHTML = htmlInputString;
    

    这是触发事件。我只是将其更改为

    quill.clipboard.dangerouslyPasteHTML(htmlInputString, 'api');
    

    现在 HTMl 已按预期应用,并且在填充字段时不会触发触发器。

    【讨论】:

    • 我不太确定这是一个好方法。也许检查source 来检测它何时来自apiuser
    • 我已经这样做了,所有对事件的调用都来自“用户”。这样,您不仅可以传递源值本身,也不会引发事件触发器。
    • 'dangerouslyPasteHTML' 是否有比我看到的更“危险”的东西?
    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多