contenteditable:使用行/列修饰符时检测元素变化

Posted

技术标签:

【中文标题】contenteditable:使用行/列修饰符时检测元素变化【英文标题】:contenteditable: Detect element changes when using row/column modifier 【发布时间】:2011-11-05 10:38:59 【问题描述】:

我使用上一篇文章中的以下代码来检测(大部分)对具有“contenteditable”属性的元素的更改。但遗憾的是它不包括在使用浏览器 (Firefox) 提供的表格行/列修饰符控件时发生的表格更改

    $('[contenteditable]').live('focus', function() 
       var $this = $(this);
       $this.data('before', $this.html());
       return $this;
    ).live('blur keyup paste', function() 
       var $this = $(this);
       if ($this.data('before') !== $this.html()) 
           $this.data('before', $this.html());
           $this.trigger('change');
       
       return $this;
    );

如何更改此代码以包含对浏览器控件施加的更改的检测?

【问题讨论】:

【参考方案1】:

作为一种解决方法,我已经完成了以下操作

    我已将DOMSubtreeModified 的事件侦听器添加到元素中。 它经常触发,所以我添加了setTimeout 延迟 在延迟函数中,我使用上面提到的 $(this).data() 相同的方法检查元素的内容是否发生了变化。

这有点脏,但可以解决问题。

【讨论】:

以上是关于contenteditable:使用行/列修饰符时检测元素变化的主要内容,如果未能解决你的问题,请参考以下文章

Vue:如何在按住键盘修饰符时更改按钮的文本?

SwiftUI fileExporter 在 DocumentGroup 的工具栏修饰符中用作按钮修饰符时不存在

vue 事件修饰符

C#中的新修饰符

如何获取 ContentEditable 区域中的行数和当前插入符号行位置?

类的默认修饰符[重复]