1

JQueryを使用して、ページのコンテンツが読み込まれたことを検出し、コンテンツの量に基づいてページのdiv(ナビゲーションバーとコンテンツ)のサイズを変更しようとしています。(たとえば、テキストの量が少ない場合、divの高さは800pxですが、ナビゲーションとコンテンツのdivの高さが異なる場合は、両方を2つの最大の高さに設定します。

        function resizePage(){
            var defaultSize = 600;
            var sidebarH = $("nav").height();
            var articleH = $("article").height();

            if((sidebarH < defaultSize) || (articleH < defaultSize)){
                $("nav").css({'height': defaultSize});
                $("article").css({'height': defaultSize});
            }
            else{
                if(sidebarH <= articleH){
                    $("nav").css({'height': articleH});
                }
                else{
                    $("article").css({'height': sidebarH});
                }
            }
        }

        $(window).load(function() {
            resizePage();
        });

HTMLコードを変更したとき...現在Jinjaテンプレートを使用しています...ウィンドウがロードされた後にテンプレートデータがロードされているようで、適切にサイズ変更されていません。テンプレートデータがすべて読み込まれたことをJQueryが判断する方法はありますか?または、これを別の方法で修正することはできますか?

御時間ありがとうございます!

4

2 に答える 2

1

.ready()代わりに試してください:

$(document).ready(function() {
    function resizePage() {
        var defaultSize = 600;
        var sidebarH = $("nav").height();
        var articleH = $("article").height();

        if((sidebarH < defaultSize) || (articleH < defaultSize)) {
            $("nav").css({'height': defaultSize});
            $("article").css({'height': defaultSize});
        }
        else{
            if(sidebarH <= articleH){
                $("nav").css({'height': articleH});
            }
            else{
                $("article").css({'height': sidebarH});
            }
        }
    }      

    resizePage(); // You are calling it here
});
于 2013-03-25T00:30:39.167 に答える
0

変更する必要があります|| に &&。

$(window).loadと$(document).readyは、ここでは違いがありませんでした。

于 2013-03-25T22:31:54.267 に答える