0

ページ MainContainer のサイズの変更を常にチェックする必要があります。その場合は、そのサイズをその内部の最大の要素よりも大きくなるように修正します (すべての要素をラップします)。

他の方法がある場合、それは本当に私の関心事ではありません。私を悩ませているのは、1行を変更したときの影響です。

私のコードは次のとおりです。

var pageMaxWidth = 0;
var pageMaxHeight = 0;
(function fixWidth()
{
 var intervalCounter = 0;
    var interval = setInterval(function(){
        var intervalMaxWidth = 0;
        var intervalMaxHeight = 0;
        $("#MainContainer table").each(function(index,elem){
            if($(elem).width()>intervalMaxWidth)
            {
                intervalMaxWidth=$(elem).width();
                //console.debug("new interval width");
            }
            if($(elem).height()>intervalMaxHeight)
            {
                intervalMaxHeight=$(elem).height();
                //console.debug("new interval height");             
            }
        });
        if(pageMaxWidth!=intervalMaxWidth)//I'm the referred if
        {
            $("#MainContainer").width(intervalMaxWidth);
            pageMaxWidth=intervalMaxWidth;
            console.debug("width fixed");
        }
        if(pageMaxHeight!=intervalMaxHeight)
        {
            $("#MainContainer").height(intervalMaxHeight);
            pageMaxHeight=intervalMaxHeight;
            console.debug("height fixed");
        }
        },500);
})();

コメントされた場合(私は参照されている場合)、私は変更します:

$("#MainContainer").width(intervalMaxWidth);

$("#MainContainer").width(intervalMaxWidth+40);

Chrome でスクリプトを実行すると、MainContainer の幅が常に増加します。つまり、常に true と評価されますpageMaxWidth!=intervalMaxWidth。intervalMaxWidth の値を変更しなかった場合、どのように起こりますか? でも、コンソールでデバッグして確認したので、実際には 40 追加されています。FireFoxでは起こらない

4

1 に答える 1

0

私が考えることができる唯一の説明は、次の行です。

if($(elem).width()>intervalMaxWidth)

要素の 1 つに対して実行されており、if 条件内で intervalMaxWidth を変更しています。

于 2013-06-27T17:18:57.837 に答える