Apakah mungkin membuat pendengar acara di jQuery yang dapat terikat pada perubahan gaya apa pun? Misalnya, jika saya ingin "melakukan" sesuatu ketika suatu elemen mengubah dimensi, atau perubahan lain dalam atribut style yang dapat saya lakukan:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
Ini akan sangat berguna.
Ada ide?
MEMPERBARUI
Maaf telah menjawab ini sendiri, tetapi saya menulis solusi yang rapi yang mungkin cocok untuk orang lain:
(function() {
var ev = new $.Event('style'),
orig = $.fn.css;
$.fn.css = function() {
$(this).trigger(ev);
return orig.apply(this, arguments);
}
})();
Ini sementara akan menimpa metode prototipe.css internal dan mendefinisikan kembali dengan pemicu di akhir. Jadi kerjanya seperti ini:
$('p').bind('style', function(e) {
console.log( $(this).attr('style') );
});
$('p').width(100);
$('p').css('color','red');