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

当您这样做时window.onresize= onResizeWindow();,您实际上设置window.onresizeundefined,因为您正在运行 onResizeWindow 并将 onresize 设置为返回值。

只需删除括号。

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 回答