text...">

Html element content change event

I need to know the content change event of my div element, how can I do this using jquery?

<div id="mydiv">text before</div> 

over time

 <div id="mydiv>other content</div> 

I make this way

 $("#mydiv").change(function() { alert('yes'); }); 

does not work

  (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? }); 

but I see the logs in the console!

+6
jquery
source share
2 answers

You can trigger a custom event after changing the contents of an element:

 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"); 
+12
source share
 "The change event is sent to an element when its value changes. This event is limited to <input> elements, <textarea> boxes and <select> elements. " 

You cannot use change event in divs.

+1
source share

All Articles