我有一个函数名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();
}
}
问题是单击按钮后,页面的onresize功能不再起作用。如何解决?
答案 0 :(得分:0)
执行window.onresize= onResizeWindow();
后,您有效地将window.onresize
设置为undefined
,因为您正在运行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();
}
}
答案 1 :(得分:0)
与原始作业一样,您不应使用()
。使用:
window.onresize = onResizeWindow;
// and
window.onresize = onResizeWindow2;
添加()
会立即调用函数并将其返回值分配给onresize
属性。这些函数什么都不返回,因此undefined
是返回的值,这意味着在调整窗口大小时没有任何内容运行。