2

ねえみんなあなたが私を助けることができることを願っています、

私は奇妙な問題を抱えています。私は(他の多くのものの中でも)2つのフローティングdivを持つWebページに取り組んでいます。同じ高さのフローティング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()行を追加しない場合に発生することです。 ここに画像の説明を入力してください

これは、アラートラインを追加するとどうなるかです。

ここに画像の説明を入力してください

なぜこれが起こっているのか考えはありますか?:/


返信が遅くなってすみませんが、

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

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

何か案は?

4

2 に答える 2

1

この質問を基礎として使用すると、任意の数の要素の最大の高さをすばやく取得できます。あなたが彼らにすべてのクラスを与えた場合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/

于 2012-07-12T18:27:16.120 に答える
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.

お役に立てれば。

マイケル。

于 2012-07-12T17:07:10.570 に答える