2012-02-29 90 views
1

我有这个jQuery函数,它获得我的document的高度并将div粘贴到视图。jQuery在附加内容时更改.height

它工作正常时,DOM加载时的内容已经在这里,但如果我追加了一些李来我的容器,我想刷新这个函数来得到新的文件的高度

这里的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>更新文件的高度在我的函数使用?

感谢您的帮助!

解决:

我通过将该找到了解决办法:$(document).height();$(window).scroll(function() {});

感谢答案里面!

+0

难道你不能只修正它在一个变量,并始终使用$(document).height(); ?? – Pluckerpluck 2012-02-29 23:11:58

+0

不,我需要留在这个功能 – user990463 2012-03-01 00:14:32

回答

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

我的第一个猜测我已经删除。清除不足。 – 2012-03-01 00:59:06