jquery - 由AJAX成功设置的动态元素高度

时间:2012-02-14 11:55:07

标签: javascript jquery ajax

我有一个折叠列表。 在Ajax成功之后,列出自动扩展。

我正试图获得扩展列表的高度......并且失败了。

Ajax将动态元素添加到列表中,因此高度更改。

这是剥离的代码:

$('form').submit(function() {

   $.ajax({  
        type: "POST",  
        url: "ajax/ajax.php",  
        data: {data:JSON.stringify(data)},  
        dataType: "json",
        success: function(x) {  

            $('#slider' + x.id).children('ul,li').slideDown("slow");

            //this does not return expected height (outerHeight() also tried)
            var t = $('#slider_' + x.id).height();
         } 
    });  

    return false;
});

1 个答案:

答案 0 :(得分:3)

我假设slideDown动画花费时间,当你试图获得它已经改变的高度时。

您可以为动画使用回调,并在动画结束后获得高度:

$('#slider' + x.id).children('ul,li').slideDown("slow", function() 
  {
   //this executes AFTER the animation is complete.
    var t = $('#slider_' + x.id).height();
  }