2016-08-08 23 views
0

所以我想要做的是使每個函數被調用時,下面的函數中的if/else語句被檢查。我把它用如何在每次調用函數(JavaScript)時使if/else語句得到檢查?

的onclick = 「openNav()」

在我的HTML。非常感謝你的幫助,對不起,如果這是一個蹩腳的問題,因爲我是JavaScript新手。下面

代碼:下面片段

var intViewportWidth = window.innerWidth; 
 

 
function openNav() { 
 

 
\t $("body").css("background-color", "rgba(0,0,0,.4)"); 
 

 
\t if (intViewportWidth < 1200) { 
 

 
\t \t $("header nav").css("width", "100%"); 
 
\t \t $("body").css("margin-right", "100%"); \t 
 

 
\t } 
 
\t else { 
 

 
\t \t $("header nav").css("width", "30%"); 
 
\t \t elBody.css("margin-right", "30%"); 
 

 
\t } 
 

 
\t $("#hamburger").hide(); 
 

 
}

+0

嘗試移動'VAR intViewportWidth = window.innerWidth;'你的函數裏面。 – SimianAngel

+0

它的工作原理,謝謝。 :) –

+0

當然可以!當你使用'onclick'調用'openNav()'時,你的函數不知道'intViewportWidth'代表了什麼。您的瀏覽器可能會拋出一個引用錯誤,因爲該變量未定義,並且您的條件邏輯永遠不會到達。無論何時調用此函數,您可能都希望評估窗口寬度,以便您的導航可以使用正確的樣式進行響應。 – SimianAngel

回答

1

使用。除非獲取寬度在函數內,否則intViewportWidth不會更改。

function openNav() { 
 
    
 
\t $("body").css("background-color", "rgba(0,0,0,.4)"); 
 
    
 
    var intViewportWidth = window.innerWidth; 
 
\t if (intViewportWidth < 1200) { 
 

 
\t \t $("header nav").css("width", "100%"); 
 
\t \t $("body").css("margin-right", "100%"); \t 
 

 
\t } 
 
\t else { 
 

 
\t \t $("header nav").css("width", "30%"); 
 
\t \t elBody.css("margin-right", "30%"); 
 

 
\t } 
 

 
\t $("#hamburger").hide(); 
 

 
}