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');