0

呼び出して実行する等高スクリプトがあります

$(".row1").equalCols();
$(".row2").equalCols();

マークアップは

    <div class="grid">
    <div class="grid-row">
    <div class="item row1"></div>
<div class="item row1"></div>
    </div>
    <div class="grid-row">
    <div class="item row2"></div>
<div class="item row2"></div>
    </div>
    </div>

これには無限の数のグリッド行が含まれる可能性があり、新しいグリッド行ごとに、cms は行クラスに追加される数を増やします。

$(".rowX").equalCols(); を追加し続けたくありません。私のdoc.ready関数への呼び出し - 行で始まるクラスを見つけて、それらすべてを同じ高さの呼び出しでループしようとしました - $(".row[x]"). equalCols(); のようなもの しかし、非常に混乱しています。これを解決するための助けは素晴らしいでしょう! 前もってありがとうジェームズ

4

2 に答える 2

0

クラスが行で始まるすべての要素に対して「equalCols」関数を呼び出す以下のコードを使用できます。たとえば、row1、row2 ....

$('[class^="row"]').each(function(index)
{
   equalcols();
});

ここでは、関数内に各 div のインスタンスを含めることができます。これは、以下の例のように呼び出し関数に渡すことができます。

$('[class^="row"]').each(function(index)
{
       equalcols(this);//here 'this' is the instance of current div
});

function equalcols(divInstance)
{
  $(divInstance).css('height',maxHeight);
}

これにより、class='rowX' を使用して各 div の高さが必要な最大高さに設定されます。

于 2014-01-21T10:55:39.597 に答える
0

すべてのrow1,row2アイテムにはクラスitemが使用されているため、

$(".grid-row > .item").equalCols();

試す

$(".grid-row").children(':first-child').each(function () {
    var row = this.className.match(/row\d+/)[0];
    $('.' + row).equalCols()
});
于 2014-01-21T10:50:06.857 に答える