$('ul').each(function(){ var rep = 0; $(this).children().each(function(){ var itemHeight = parseInt($(this).height()); if(itemHeight > rep){ rep = itemHeight; } }); $(this).children().css({height:(rep)}); });こんな感じ(で合ってるはず)。
ローカル環境で正常に動作したのでリモートにアップしたらなぜか正確に高さを測ってくれない。しかもChromeだけ! いろいろ調べてみたところ、どうもロード時間に問題があるらしい。
結論としては:
- 高さを揃えたりするなら、ページが全てロードされた後に計算させないと正しく動かない(こともある)。
- $(window).load()で対処。
jQuery(function($) { $(window).load(function() { $('ul#sample').each(function(){ var rep = 0; $(this).children().each(function(){ var itemHeight = parseInt($(this).height()); if(itemHeight > rep){ rep = itemHeight; } }); $(this).children().css({height:(rep)}); }); }); });これはローカル環境だとページロードが早かったから表面化しなかった問題。
論理的に考えれば理屈はわからなくはないんだけど、IE,Firefox,Operaで動いてChromeが動かないのは初めての現象でびっくりした。逆は多いのに・・・(苦)
Chromeの方が正しくjavascriptを理解してるってことなの、これ?
0 件のコメント:
コメントを投稿