监控可满足范围的变化?

Jon*_*atz 2 jquery

我有一个spancontenteditable="true".我试图附加一个change事件.但根据jQuery文档,更改仅适用于表单输入.还有其他方法吗?

下面是一个jsfiddle:http://jsfiddle.net/vQuEA/

Jas*_*ted 9

将此块添加到您的页面:

$('[contenteditable]').on('focus', function() {
    var $this = $(this);
    $this.data('before', $this.html());
    return $this;
}).on('blur keyup paste', function() {
    var $this = $(this);
    if ($this.data('before') !== $this.html()) {
        $this.data('before', $this.html());
        $this.trigger('change');
    }
    return $this;
});
Run Code Online (Sandbox Code Playgroud)

change每当标签contenteditable更改时,它都会导致事件触发.

说明

有一个所有元素contenteditable属性将收到的事件侦听器focus,blur,keyup,和paste.

focus当前内部html中,将元素存储为'之前'数据.

blur/ keyup/ paste当前内部html与'之前'数据进行比较,如果不同,change则触发事件.