É possível criar um ouvinte de evento no jQuery que possa ser vinculado a qualquer alteração de estilo? Por exemplo, se eu quiser "fazer" algo quando um elemento alterar dimensões, ou qualquer outra alteração no atributo style, eu poderia fazer:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Seria realmente útil.
Alguma ideia?
ATUALIZAR
Desculpe por responder isso sozinho, mas escrevi uma solução interessante que pode se encaixar em outra pessoa:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Isso substituirá temporariamente o método prototype.css interno e o redefinirá com um gatilho no final. Então funciona assim:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');