获取动态改变高度的DIV的高度

时间:2010-09-09 12:50:25

标签: jquery

示例:http://jsbin.com/ewiko4/5/

所以我有一些动态div,我需要弄清楚它们何时改变的高度。我可以在文档加载时获得高度,但不会更新。

在示例中,我添加了一个更大的按钮,但是它会通过jq&更改。 AJAX

是的,我无法在动画按钮上添加回调,因为它不会在那里。

3 个答案:

答案 0 :(得分:3)

您所要做的就是再次调用outerHeight():

$('#makeBigger').click(function(){
  $('#buyNow').animate({
        height: '+=10px'
  }, function() {
    var newHeight = $('#buyNow').outerHeight();
    // ...
  })
});

如果将函数传递给animate()作为第二个参数,那么在动画完成时将调用该函数。那时,你可以获得新的高度并随心所欲地做任何事情。如果<div>由于其内容被重新加载而发生更改,那么您将在ajax例程的回调中执行相同的操作。

答案 1 :(得分:1)

看看你的jsbin的this edit

一些变化:

  1. 您的窗口事件可以与$(window).bind('load resize', resizeFrame)

  2. 同时绑定
  3. 您想将resizeFrame称为动画回调,让它知道尺寸已更改...

  4. 如果您无法控制动画功能更改高度(如评论所示),您可以使用setInterval轮询高度。


  5. setInterval(resizeFrame, 150);
    

    每150毫秒调用一次resizeFrame函数。你可以检查高度,看看它们是否已经改变,并做任何你需要的......

答案 2 :(得分:0)

设置Div高度

var h = $('#content').height();

获得Div高度

var h = 500;
$('#content').height(h);

http://api.jquery.com/height/

您需要查找MultiView内容更改时触发的事件。完成后,您应该能够调用具有相应XXX.height()调用的函数。我不太熟悉ASP给你的具体细节。