0

関数名がonresizeWindow()ありonresizeWindow2()、ページの頭に入れて div の高さを変更します。

function onResizeWindow() {
        if (window.innerHeight && document.getElementById("divListItem"))
            document.getElementById("divListItem").style.height = window.innerHeight - 135;
        else if (document.getElementById("divListItem"))
            document.getElementById("divListItem").style.height = document.body.clientHeight - 135;
    }
function onResizeWindow2() {
        if (window.innerHeight && document.getElementById("divListItem"))
            document.getElementById("divListItem").style.height = window.innerHeight - 275;
        else if (document.getElementById("divListItem"))
            document.getElementById("divListItem").style.height = document.body.clientHeight - 275;
        }
}

次に、私のページのフッターにこれを入れました

window.onresize = onResizeWindow;
onResizeWindow();

ユーザーがボタンをクリックすると、このコードを配置します

function showDiv(){
        var tr = document.getElementById('tdSearch');               
        if (tr.style.display =="table-row"){
            tr.style.display = "none"; 
            window.onresize= null;
            window.onresize= onResizeWindow();
            onResizeWindow();
        }else{
            tr.style.display = "table-row";
            window.onresize= null;
            window.onresize= onResizeWindow2();
            onResizeWindow2();
        }
}

問題は、ボタンをクリックした後、ページのページのサイズ変更機能が機能しなくなったことです。修正方法は?

4

2 に答える 2

0

を実行すると、 onResizeWindow を実行して onresize を戻り値に設定しているため、window.onresize= onResizeWindow();効果的に に設定window.onresizeされます。undefined

括弧を削除するだけです。

function showDiv() {
        var tr = document.getElementById('tdSearch');               
        if (tr.style.display === "table-row") {
            tr.style.display = "none";
            window.onresize = onResizeWindow;
            onResizeWindow();
        } else {
            tr.style.display = "table-row";
            window.onresize = onResizeWindow2;
            onResizeWindow2();
        }
}
于 2013-06-26T04:30:43.693 に答える
0

元の割り当てと同様に、を使用しないでください()。使用する:

window.onresize = onResizeWindow;
// and
window.onresize = onResizeWindow2;

を追加すると()すぐに関数が呼び出され、その戻り値がonresizeプロパティに割り当てられます。これらの関数undefinedは何も返さず、戻り値も同様です。つまり、ウィンドウのサイズが変更されても何も実行されません。

于 2013-06-26T04:31:15.717 に答える