Est-il possible de créer un écouteur d'événement en jQuery qui peut être lié à tous les changements de style? Par exemple, si je veux "faire" quelque chose lorsqu'un élément changements de dimensions, ou de tout autre changement dans l'attribut style, j'ai pu faire:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Il serait vraiment utile.
Des idées?
Mise à JOUR
Désolé pour répondre à cette question à moi-même, mais j'ai écrit une solution élégante qui pourrait correspondre à quelqu'un d'autre:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Ce sera temporaire remplacer l'interne prototype.méthode css et de le redéfinir avec un seuil de déclenchement à la fin. De sorte qu'il fonctionne comme ceci:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');