1

我使用上一篇文章中的以下代码来检测(大部分)对具有属性“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;
    });

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

4

1 回答 1

1

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

  1. 我为DOMSubtreeModified元素添加了一个事件监听器。
  2. 它经常触发,所以我添加了setTimeout延迟
  3. 在延迟函数中,我使用$(this).data()上述相同的方法检查元素的内容是否发生了变化。

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

于 2011-11-15T16:46:33.180 回答