2011-02-23 137 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

相关问题