2012-08-02 76 views
1

可能重复:
Detecting when a div's height changes using jQuery
jQuery: Get height of hidden element in jQuery如何在没有回调的情况下在淡入之后运行函数?

有没有一种方法来检测使用jQuery一个淡入事件的完成,所以我可以开枪完成的功能?

我明白fadeIn有一个内置的回调函数,但这需要我直接影响fadeIn代码。我无法访问该代码,因此我想添加一个事件侦听器或某个项目以检测某个项目已经淡入。

我想这样做的原因是因为我有一些代码检测高度一个div,但在页面加载这个div元素是隐藏的。我想检测它在淡入后的div的高度。

+0

在一个区间内轮询它的可见性/不透明度吗? – Andy 2012-08-02 11:28:53

+0

@Antonio,调用'fadeIn()'的代码是否总是在自己的代码之前运行? – 2012-08-02 11:32:28

+0

它点击运行。然后我想获得元素的高度。我只有问题,因为它始于显示CSS:无我只需要该div的高度。 – 2012-08-02 11:44:38

回答

-1

您可以利用DOMAttrModified事件,虽然这取决于您需要支持的浏览器,因为它仍然是相当实验性的。

但是由于jQuery的animate()更改了元素的style属性,所以它很合适。

//your code 
var div = $('#some_div'), target_height = 100; 
div.on('DOMAttrModified', function(evt) { 
    if ($(this).height() == target_height) do_something(); 
}); 

//some code in another, untouchable script 
$('#some_div').animate({height: 100});