Чи можливо створити слухач подій у jQuery, який може бути пов'язаний з будь-якими змінами стилів? Наприклад, якщо я хочу щось "зробити", коли елемент змінює розміри або будь-які інші зміни в атрибуті стилю, я міг би зробити:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Це було б справді корисно.
Будь-які ідеї?
ОНОВЛЕННЯ
Вибачте, що відповів на це сам, але я написав акуратне рішення, яке може підійти комусь іншому:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Це тимчасово змінить внутрішній метод prototype.css і переозначить його за допомогою тригера в кінці. Так воно працює так:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');