【问题标题】:Angular contenteditable change event not fired未触发 Angular contenteditable 更改事件
【发布时间】:2016-11-21 12:02:21
【问题描述】:

我在将直接更改应用到 execCommand 上的控制器范围时遇到问题。

change 事件未在找到 here 的 contenteditable 指令中触发,我必须模糊 div 以应用更改。是 bug 还是有其他需要做的?

这里是我的jsfiddle 进行测试。

=== 编辑 ===

粗体的 execCommand 正在处理 dom,但它不会直接更新控制器范围,除非触发事件,如字段上的 keyup 或模糊。

【问题讨论】:

    标签: javascript angularjs events angularjs-scope contenteditable


    【解决方案1】:

    change 事件不会在 DOM 元素值的所有更改时触发。解决方案是使用input 事件。

      element.on('input', function() {
          scope.$evalAsync(read);
      });
    

    改变

    input 事件不同,更改事件不一定会在每次更改元素值时触发。

    --Mozilla Developer Network -- Events -- Change


    输入

    <input><textarea> 元素的值改变时,DOM 输入事件被同步触发。 此外,当其内容更改时,它会在 contenteditable 编辑器上触发。 在这种情况下,事件目标是编辑宿主元素。如果有两个或多个元素的 contenteditable 为 true,则“编辑宿主”是其父级不可编辑的最近的祖先元素。

    --Mozilla Developer Network -- Events -- Input

    【讨论】:

    • 非常感谢,这是完美的答案! ;) 更新后的jsfiddle
    猜你喜欢
    • 2023-04-02
    • 2011-09-09
    • 2020-11-25
    • 1970-01-01
    • 2013-05-26
    • 2021-08-24
    • 2021-09-30
    • 2014-01-03
    相关资源
    最近更新 更多