jquery在加载后设置高度

Posted

技术标签:

【中文标题】jquery在加载后设置高度【英文标题】:jquery set height AFTER load 【发布时间】:2011-03-30 11:01:55 【问题描述】:

我在设置动态加载的元素的高度时遇到了一点问题。

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

我希望有人可以理解,我意识到这有点令人费解。

这是我的点击代码:

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%'); 
      
   );

但它不起作用...有什么想法吗?

【问题讨论】:

为什么不使用 jQuery 的 $ 快​​捷方式? $('#cbox')jQuery('#cbox') 短很多;) @Znarkus 可能会导致与其他库发生冲突。我知道某个烦人的 CMS 使用了可怕的自定义 jQuery 版本。 可能与 jquery 一起使用不同的库 一开始我使用 jQuery,因为这是在 Wordpress 的上下文中,这是必要的。 你可以这样做:(function($) $('#cbox'); )(jQuery); 在函数中编写所有代码,使用$ 【参考方案1】:

使用加载回调。

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

【讨论】:

【参考方案2】:

内容加载完毕后需要调用回调函数。

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

【讨论】:

大声笑,我走神了,我会打败你们俩的:无论如何都要为你们投票:P 谢谢你们俩! :) 如果我想将高度设置为该 div,这很有效。但是现在我发现如果内容高度比窗口高,我只想将它设置为那个 div 高度。否则我希望它设置为 100%。我尝试将您的代码稍微修改为此(onlick 事件): jQuery('#cbox').load('', function() if (jQuery('#cbox').height ()

以上是关于jquery在加载后设置高度的主要内容,如果未能解决你的问题,请参考以下文章

jquery获取滚动条高度和位置

jQuery - 动画高度自动

使用jQuery动态调整iframe高度,以及jQuery对dom元素的监听

根据 UITableViewCell 内的 contentSize 设置 UITextView 高度仅在初始表加载后有效

使用 jQuery 加载图像并将其附加到 DOM

jQuery中DOM操作