2013-06-26 91 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

謝謝...我知道了...... –