เป็นไปได้ไหมที่จะสร้างตัวฟังเหตุการณ์ใน jQuery ที่สามารถผูกกับการเปลี่ยนแปลงสไตล์ได้? ตัวอย่างเช่นถ้าฉันต้องการที่จะ "ทำ" บางสิ่งบางอย่างเมื่อองค์ประกอบเปลี่ยนมิติหรือการเปลี่ยนแปลงอื่น ๆ ในแอตทริบิวต์สไตล์ที่ฉันสามารถทำได้:
$('div').bind('style', function() {
console.log($(this).css('height'));
});
$('div').height(100); // yields '100'
มันจะมีประโยชน์จริงๆ
ความคิดใด ๆ
UPDATE
ขออภัยที่ตอบคำถามนี้ด้วยตัวเอง แต่ฉันได้เขียนวิธีแก้ไขที่เรียบร้อยซึ่งอาจเหมาะกับคนอื่น:
(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');