我使用上一个帖子中的以下代码来检测(大部分)具有属性“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;
});
如何更改此代码以包含检测浏览器控件强加的更改?
答案 0 :(得分:1)
作为一种解决方法,我已完成以下工作
DOMSubtreeModified
的事件监听器。setTimeout
延迟$(this).data()
检查元素的内容是否已经使用相同的方法更改。这有点脏,但它可以解决问题。