Jquery html元素内容更改事件

Jquery html元素内容更改事件,jquery,Jquery,我需要更改我的div元素的内容的已知事件,我如何使用jquery实现它 <div id="mydiv">text before</div> 靠不住 (function(){ var interval; jQuery.event.special.contentchange = { setup: function(data, namespaces) { var

我需要更改我的div元素的内容的已知事件,我如何使用jquery实现它

<div id="mydiv">text before</div>
靠不住

    (function(){

            var interval;

        jQuery.event.special.contentchange = {
            setup: function(data, namespaces) {
                    var $this = $(this);
                var $originalContent = $this.text();
                interval = setInterval(function(){
                    if($originalContent != $this.text()) {
                            console.log('content changed');
                            $originalContent = $this.text();
                            jQuery.event.special.contentchange.handler();
                    }
                },500);
            },
            teardown: function(namespaces){
                clearInterval(interval);
            },
            handler: function(namespaces) {
                jQuery.event.handle.apply(this, arguments)
            }
        };

    })();

$("#mydiv").bind("contentchange", function() {
   alert('yes'); ///no alert! why?
});
但我在控制台中看到日志

“当元素的值更改时,更改事件将发送到元素。
"The change event is sent to an element when its value changes. 

This event is limited to <input> elements, <textarea> boxes and <select> elements. "
此事件仅限于元素、框和元素。”

无法在div上使用更改事件。

更改元素内容后,可以触发自定义事件:

var $mydiv = $("#mydiv"); 

// set up the custom event handler
$mydiv.bind("contentchange", function() {
    alert("changed");
});

// change the content and trigger a custom event
$mydiv.html("other content").trigger("contentchange");

// and again
$mydiv.html("yet other content").trigger("contentchange");

我不认为有一个跨浏览器的事件。div的内容何时更改?有没有可能挂接到那个函数调用?请查看这篇文章。这与您的问题类似:您如何具体更改元素的内容?内容更改不是我-我的代码是从chrome注入的extension@vinnitu那么Chrome扩展正在改变元素的内容?在这种情况下,我的解决方案无法解决问题。查看此问题的答案:stackoverflow.com/questions/1449666/
"The change event is sent to an element when its value changes. 

This event is limited to <input> elements, <textarea> boxes and <select> elements. "
var $mydiv = $("#mydiv"); 

// set up the custom event handler
$mydiv.bind("contentchange", function() {
    alert("changed");
});

// change the content and trigger a custom event
$mydiv.html("other content").trigger("contentchange");

// and again
$mydiv.html("yet other content").trigger("contentchange");