I have a function name onresizeWindow()
and onresizeWindow2()
that i put in the head of my page to change the height of a 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;
}
}
Then in the footer of my page I put this
window.onresize = onResizeWindow;
onResizeWindow();
When user click a button, i put this code
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();
}
}
The problem is after clicking the button, page onresize function of the page doesn't work anymore. How to fix it?
Just like your original assignment, you shouldn't use ()
. Use:
window.onresize = onResizeWindow;
// and
window.onresize = onResizeWindow2;
Adding the ()
immediately calls the functions and assigns their return value to the onresize
property. These functions return nothing, so undefined
is the returned value, meaning nothing runs when the window is resized.