jquery没有从填充了ajax的元素中获得预期的高度

时间:2014-09-22 10:44:46

标签: jquery ajax

我有一个div,它最初为空,显示设置为无。

然后,通过用户选择,激活ajax调用并加载内容。

由于div的位置有点花哨,我必须强制高度才能正确显示。

我设置了一个函数来计算ajax之后父div的高度,但是它给了我一个意想不到的结果,这与该除法的实际高度无关。

在初始页面加载时,计算正确进行,但是使用ajax调用它会变坏。

当它在ajax调用中计算div'main'的高度时,它以某种方式获得了更高的数字,然后是现实。

感谢您的协助。

摘要html:

<div class="content_wrapall">
     <div id="main">
          <div id="slide1">some content ....</div
          <div id="alltabs"></div> // initially set to display:none
     </div>

     <div id="info">some content...</div>

     <div id="pub"> some content... </div>
</div>

这是ajax电话:

$(document).ready(function () {
    $(".hook10").change(function () {
        var str = $(".hook10").serialize();
        $.ajax({
            url: "comp_all_ajax.php",
            type: "POST",
            dataType: "html",
            data: str,
            success: function (data) {
                $("#alltabs").html(data);
                $('#' + 'alltabs').css({
                    "display": "inline"
                });
                content_height();

            },
            complete: function () {
                $("#tabs, #tabs10").tabs();

                $(function () {
                    $(".tool").click(calltip);
                });

            }
        });
    });
});

这是调整高度的功能。它在初始页面加载时工作正常。

function content_height() {
    if (wid > 760) {
        var c_height = [];
        c_height.push($('#pub').outerHeight());
        c_height.push($('#main').outerHeight());
        c_height.push($('#info').outerHeight());
        var max_height = Math.max.apply(Math, c_height);
        $('.content_wrapall').height(max_height);
    }
}

$(document).ready(function () {
    content_height();
});

1 个答案:

答案 0 :(得分:0)

  

我有一个div,它最初为空,显示设置为无。

如果元素可见,

height()width()将只返回正确的结果,因此如果调用这些函数时它们有display: none,结果将是错误的(通常为0)