Ist es möglich, in jQuery einen Ereignis-Listener zu erstellen, der an Stiländerungen gebunden werden kann? Wenn ich beispielsweise etwas "tun" möchte, wenn ein Element die Abmessungen ändert, oder andere Änderungen am Stilattribut, könnte ich Folgendes tun:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Es wäre wirklich nützlich.
Irgendwelche Ideen?
AKTUALISIEREN
Es tut mir leid, dass ich das selbst beantwortet habe, aber ich habe eine nette Lösung geschrieben, die zu jemand anderem passen könnte:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Dadurch wird die interne prototype.css-Methode vorübergehend überschrieben und am Ende mit einem Trigger neu definiert. So funktioniert es:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');