jquery设置高度加载后

时间:2010-08-16 13:57:34

标签: jquery css height background-color

设置我正在动态加载的元素的高度时遇到一些麻烦。

我使用jquery load函数将外部(动态)页面加载到当前页面上的div(#cbox)中。因为这个子页面是动态的,所以我不知道内容的高度是什么。我想在加载内容后获得高度,并将容器div的高度设置为匹配,以便我的颜色背景css一直向下。我在css中尝试了100%高度div的许多变化,但是只要我滚动页面,颜色就会向上滚动(100%似乎只设置浏览器窗口高度的100%,而b / c内容是动态的加载它不起作用。我的解决方案是将div的高度设置为加载内容的高度,但这仅适用于SECOND点击(因为此时页面已加载并可访问。我需要弄清楚怎么做是在外部页面加载后更改div的高度,但我似乎无法弄清楚。)

我希望这对某人来说是可以理解的,我知道这有点令人费解。

这是我的onclick代码:

jQuery('#cbox').load('externalpage.php');
jQuery('#cbox').height(jQuery('#content').height());

更新: 如果我想将高度设置为该div,则下面的解决方案有效。但现在我发现我只想将其设置为div高度,如果内容高度比窗口更高。否则我希望它设置为100%。我尝试稍微修改它们的代码(onlick事件):

jQuery('#cbox').load('<?php the_permalink(); ?>', function() 
   { 
      if (jQuery('#cbox').height() < jQuery('#content').height()) 
      {
         jQuery('#cbox').height(jQuery('#content').height()); 
      } 
      else
      { 
         jQuery('#cbox').height('100%'); 
      }
   });

但它不起作用......任何想法?

2 个答案:

答案 0 :(得分:16)

您需要在加载内容后调用回调函数。

jQuery('#cbox').load('externalpage.php', function() {
   jQuery('#cbox').height(jQuery('#content').height());
});

答案 1 :(得分:4)

使用加载回调。

jQuery('#cbox').load('externalpage.php', function() {
  jQuery('#cbox').height(jQuery('#content').height());
});