Javascript 如何使用jQuery和disqs评论系统为div布局设置等高
我有一个基于div的布局,使用jQuery和“setEqualHeights”函数(如下)使布局中的所有列相等 等高jQuery:Javascript 如何使用jQuery和disqs评论系统为div布局设置等高,javascript,jquery,height,html,disqus,Javascript,Jquery,Height,Html,Disqus,我有一个基于div的布局,使用jQuery和“setEqualHeights”函数(如下)使布局中的所有列相等 等高jQuery: function setEqualHeight(columns) { var tallestcolumn = 0; columns.each( function() { currentHeight = $(this).height(); if(currentHeight > tall
function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}
$(window).load(function() {
setEqualHeight($(".coln_equalize"));
});
<div id="wrap">
<div id="nav-coln" class="coln_equalize">
... navigation ...
</div>
<div id="content" class="coln_equalize">
... content ...
</div>
</div>
<div id="wrap">
<div id="nav-coln" class="coln_equalize">
... navigation ...
</div>
<div id="content" class="coln_equalize">
... content ...
<div id="disqus_thread">
... disqus stuff ...
</div>
</div>
</div>
HTML应该是这样的:
function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}
$(window).load(function() {
setEqualHeight($(".coln_equalize"));
});
<div id="wrap">
<div id="nav-coln" class="coln_equalize">
... navigation ...
</div>
<div id="content" class="coln_equalize">
... content ...
</div>
</div>
<div id="wrap">
<div id="nav-coln" class="coln_equalize">
... navigation ...
</div>
<div id="content" class="coln_equalize">
... content ...
<div id="disqus_thread">
... disqus stuff ...
</div>
</div>
</div>
尝试的解决方案#2(也失败):使用jQuery获取discus块的高度,然后使用jQuery将其添加为CSS高度参数
然后我想我可以使用一个更简单的脚本来获得disqs的高度,并使用jQuery将其作为CSS应用。
为此,我插入了以下代码来代替“//CALL YOUR EQUAL HEIGHTS JQUERY code HERE”块:
但是,同样,我认为这一尝试失败了,因为它也是在Disqus完全完成加载之前应用的,而且它也失败了,因为它没有捕获新的
正在添加新注释
任何帮助都将不胜感激 此外,这可能与在jQuery中使用高度相等的“延迟加载”的想法有关。快速而肮脏的解决方案是在一个间隔上运行列高度均衡器。这不太好看,但会有用的。@DanielMendel你说的“间歇”是什么意思?循环中…?是的,循环中。它的工作原理如下:
setInterval(function(){//do stuff},500)代码>。这将每500毫秒触发一次函数。它的工作原理与setTimeout
完全相同,因此您可以转到var looping=setInterval(someFunction,500)
,然后停止循环clearInterval(循环)代码>此外,这可能与在jQuery中使用高度相等的“延迟加载”的想法有关。快速而肮脏的解决方案是在一个间隔上运行列高度均衡器。这不太好看,但会有用的。@DanielMendel你说的“间歇”是什么意思?循环中…?是的,循环中。它的工作原理如下:setInterval(function(){//do stuff},500)代码>。这将每500毫秒触发一次函数。它的工作原理与setTimeout
完全相同,因此您可以转到var looping=setInterval(someFunction,500)
,然后停止循环clearInterval(循环)代码>