2011-02-23 202 views
1

如何使用jquery在特定CSS變量發生變化(例如:特定div的高度)時調用函數?當css值發生變化時觸發事件

+0

什麼事件導致CSS中的「變量」變化?身高如何變化?它被拖拽/最大化了嗎? – cp3 2011-02-23 21:59:37

+0

高度由另一個jQuery命令改變,該命令在文檔中漣漪。麻煩的是,這些變化並沒有立即傳播。我只希望較低的階段在他們的父包裝準備就緒時進行更新。 – 2011-02-23 22:02:17

回答

0

對此,沒有「原生」解決方案。如果你嚴格使用jQuery的CSS propertys的操作,功能或(鴨punshing)是您的最佳拍攝:

(function($) { 
    var _oldcss = $.fn.css; 
    $.fn.css = function() { 
     if(typeof arguments[0] === 'string') { 
      console.log('css property ', arguments[0], ' is about to change for elem: ', this); 
     } 

     return _oldcss.apply(this, arguments); 
    }; 
}(jQuery)); 

這當然是不完整的。如果arguments[0]object,則需要遍歷鍵/值。但這是基本原則。

這個解決方案是一件好事,即使.height()將調用.css()。所以

$('div:eq(2)').height(55); 

會引發CSS屬性的高度大約是更改ELEM:DIV#自定義頁眉]

+0

我明白了,非常感謝。我很驚訝沒有本地選項。我正在尋找一些有點像.resize(); – 2011-02-23 22:04:27

相關問題