¿Es posible crear un detector de eventos en jQuery que pueda vincularse a cualquier cambio de estilo? Por ejemplo, si quiero "hacer" algo cuando un elemento cambia de dimensión, o cualquier otro cambio en el atributo de estilo que podría hacer:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Sería realmente útil
¿Algunas ideas?
ACTUALIZAR
Perdón por responder esto yo mismo, pero escribí una solución ordenada que podría adaptarse a otra persona:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Esto anulará temporalmente el método interno prototype.css y lo redefinirá con un disparador al final. Entonces funciona así:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');