2011-01-26 10 views
3

RSSフィードを解析して一連のdivに表示するサイトを開発しています。すべてのフィードがロードされた後、基本的に最も高いdivの高さをとり、すべてのdivをその高さに設定するjquery関数を実行したいと思います。私は以下に概説jqueryのequal heights plugin使用して、現在http://vitaminjdesign.com/adrian/イベント後に高さをJqueryで均等にする

:あなたはここにサイトを閲覧することができます

function equalHeight(group) { 
    var tallest = 0; 
    group.each(function() { 
     var thisHeight = $(this).height(); 
     if(thisHeight > tallest) { 
      tallest = thisHeight; 
     } 
    }); 
    group.height(tallest); 
} 

をし、あなたがそれを呼び出すことができます(

$(document).ready(function() { 
$(".block").equalHeights(); 
}); 

これが正常に動作していませんすべてのdivの高さを最も高いdivの高さに設定しますBEFORE rssフィードが読み込まれます)、これはおそらく実際のイベントハンドラを使用する必要があるためですか?誰もがすべてが完全に読み込まれた後、どのように平等になるように高さを設定できるのか知っていますか?

答えて

4

AJAXが完了したらequalHeightに電話する必要があります。 2つのオプションがあります:(a)各アイテムがロードされた後にコールを行うか、(b)すべてのアイテムがロードされた後にコールを1回実行するか。 equalHeightはリソースが重く見えません。そのたびに呼び出しを行うこともできます。

したがって、各AJAXコールのsuccessコールバックにequalHeight($(".block"));を追加するだけです。コードの面で

$.ajax({ 
    url: 'someurl.rss', 
    success: function(){ 
     // your code to insert the relevant content 

     equalHeight($(".block")); // insert this at the end of each call to the RSS files 
    } 
}); 

代わりに、そして少しより集中的な、しかし、単純には、すべてのAJAX呼び出しの後に機能を実行するためにajaxSuccessを使用することです。この方法では

$(document).ajaxSuccess(function(){ 
    equalHeight($(".block")); 
}); 
+0

イム慣れていません、しかし、これが機能するためには、すべての項目がロードされた後に呼び出す必要があると思います。 – JCHASE11

+0

$(document).ajaxSuccess(function(){ありがとう!!! – JCHASE11

+0

関数レンダリングクロームの高さは非常に異なって...私はajaxSuのためだと思いますccess – JCHASE11

関連する問題