2013-06-26 94 views
0

我有一个函数名称onresizeWindow()onresizeWindow2(),我放在我的页面头部来改变div的高度。加载页面后更改window.onresize失败

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

你为什么决定在作业中加入'()',但你一开始没有?使用'window.onresize = onResizeWindow2;',例如 – Ian

+0

感谢您的答案......但我只是意识到..im非常愚蠢......它不应该像那样... window.onresize = onResizeWindow();应该是window.onresize = onResizeWindow;和window.onresize = onResizeWindow2();应该是window.onresize = onResizeWindow2; –

+0

我删除了方括号和那个作品 –

回答

0

就像你原来的任务一样,你不应该使用()。用途:

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

添加()立即调用的功能,并指定其返回值的onresize财产。这些函数不返回任何内容,因此undefined是返回值,意味着窗口调整大小时不会运行。

+0

yesss谢谢...我觉得这么愚蠢问这个问题:( –

+0

@ user2495615不要觉得愚蠢,这是一个小错误,许多人通常你只需要另一组眼睛,这就是StackOverflow的用途,我很高兴你的代码已经修复:) – Ian

+0

谢谢Ian ...非常友善。 –

0

当您执行window.onresize= onResizeWindow();时,由于您正在运行onResizeWindow并将onresize设置为返回值,因此有效地将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(); 
     } 
} 
+0

谢谢...我知道了...... –