jquery使2列高度相等仅在alert()时有效

时间:2012-07-12 15:32:45

标签: jquery css html

嘿伙计们希望你能帮助我,

我有一个奇怪的问题。我正在开发一个有两个浮动div(其中包括许多其他东西)的网页。为了使浮动div具有相同的高度,我添加了以下代码

$(document).ready(function(){

   alert($('#body-left').height());
    if($('#body-left').height()>$('#sidebar').height()){
     $('#sidebar').height($('#body-left').height());

    }
    else{

    $('#body-left').height($('#sidebar').height());

    }

});

看到“alert($('#body-left')。height());”,当我删除该行时,它停止工作:/。我:

当我不添加alert()行时会发生这种情况: enter image description here

这就是我添加警报线

时会发生的情况

enter image description here

为什么会发生这种情况的任何想法? :/


对于迟到的回复人员感到抱歉,但我使用

工作了
if($('#body-left').height()>$('#sidebar').height()){
    setTimeout(function(){
     $('#sidebar').height($('#body-left').height());
    },100);

}
else{
    setTimeout(function(){
    $('#body-left').height($('#sidebar').height());
    },100);
}

任何想法?

2 个答案:

答案 0 :(得分:1)

如果你想要平等的高度......试试这个插件:

$.fn.setMinHeight = function(setCount) {
  for(var i = 0; i < this.length; i+=setCount) {
    var curSet = this.slice(i, i+setCount), 
        height = 0;
    curSet.each(function() { height = Math.max(height, $(this).height()); })
          .css('height', height);
  }
  return this;
};

将上述代码复制并粘贴到JS文件中并链接到它。然后这样称呼......

$(".theItems").setMinHeight(2); // Pass in number of items to include.

希望这有帮助。

迈克尔。

答案 1 :(得分:1)

使用this question作为基础,您可以快速获取任意数量元素的最大高度。如果你给他们所有的课程equalheight,你可以这样做:

$(document).ready(function() {
    var maxheight = $.map($('.equalheight'), function(val, i) {
        return $(val).height();
    }).max();
    $('.equalheight').height(maxheight);
});

Array.prototype.max = function() {
    return Math.max.apply(Math, this);
};

http://jsfiddle.net/mblase75/NR9TZ/