jQuery在添加内容时更改.height

时间:2012-02-29 23:10:44

标签: jquery dom height append

我有这个jQuery函数,它可以获得document的高度并将div粘贴到视图中。

当加载DOM时内容已经在这里时它工作正常但是如果我将一些li附加到我的容器中我想刷新此函数以获得新文档高度

这是js代码:

$(function()
{
    var documentHeight = 0;
    var topPadding = 55;

    var offset = $("#sidebar").offset();
    documentHeight = $(document).height();
    $(window).scroll(function() {
        var sideBarHeight = $("#sidebar").height();
        if ($(window).scrollTop() > offset.top)
        {
            var newPosition = ($(window).scrollTop() - offset.top) + topPadding;
            var maxPosition = documentHeight - (sideBarHeight + 100);
            if (newPosition > maxPosition)
            {
                newPosition = maxPosition;
            }
            $("#sidebar").stop().animate({
                marginTop: newPosition
            });
        }
        else
        {
            $("#sidebar").stop().animate({
                marginTop: 0
            });
        };
    });
});

HTML结构:

<div id="single_content">
    <ul>
        <li>...</li>
        <li>...</li>
        <li>...</li>
        ...
    <ul>
</div>

我想我需要on.change&gt;更新要在我的函数中使用的文档高度?

感谢您的帮助!

已解决:

我在$(document).height();

中放置了$(window).scroll(function() {});,找到了解决方案

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

$(window).scroll(function() {
    documentHeight = $(document).height(); // put this line inside scroll
    // the rest of code
});