jQuery: obserwacja zmiany wartości węzła
Chcę obserwować zmianę nodeValue elementu edytowanego z contenteditable. Zasadniczo chcę uruchomić funkcję po zmianie wartości węzła.
Znalazłem ten post:http://james.padolsey.com/javascript/monitoring-dom-properties/
Który wydaje się mieć wtyczkę do tego, czego chcę.
Oto wtyczka do zegarka:
jQuery.fn.watch = function( id, fn ) {
return this.each(function(){
var self = this;
var oldVal = self[id];
$(self).data(
'watch_timer',
setInterval(function(){
if (self[id] !== oldVal) {
fn.call(self, id, oldVal, self[id]);
oldVal = self[id];
}
}, 100)
);
});
return self;
};
Jako przykład mogę oglądać wartość wejścia taką jak ta:
$('#input').watch('value', function(propName, oldVal, newVal){
$("#text").text(newVal);
});
Ale nie jest to wartość węzła contenteditable (jego treść tekstowa):
$('#ce').watch('nodeValue', function(propName, oldVal, newVal){
$("#text").text(newVal);
});
Oto przykład na żywo:
Każdy wie, jak dostosować metodę zegarka do pracy z wartością węzła. Dzięki!