2015-05-15 164 views
-2

我不明白爲什麼全局變量isMob在嘗試通過if語句設置後返回undefined。爲什麼這個變量返回「undefined」

我一直對此有所瞭解,現在看起來可以找到答案。

var isMob; 
var mobMenClicked = false; 
var scrnRefresh = false; 

$('.mobileMen').click(launchMenu); 


function scaleSite() 
{    
    scaleVideo(); 
    scaleMenu();   
} 



function scaleMenu() 
{ 
    isMob=0; 
    if($(window).width() < 1066) 
    { 

     isMob=0; 

    } 
    else 
    { 

     isMob=1; 

    } 
    //chrome .hide Function Fix 
    $('.menuBar').css('display', 'inline-block'); 
    isMob=0; 

} 

alert(isMob);' 

我以爲我是在適當的位置聲明變量。顯然我不是。其他人能看到錯誤嗎?我當然不能。 o.O

+9

因爲你實際上並沒有調用它分配一個值的函數。 – radiaph

+0

我害怕我不跟隨 –

回答

0

如果發佈的代碼是整個代碼,那麼您永遠不會調用將其值分配給isMob()的函數。您可以嘗試,而第一行中定義它,它設置爲0或致電scaleSite()函數之前alert(isMob);

0

通話scaleSite()在你的代碼的一些地方所以它會在那裏分配正在發生調用你的函數的其餘部分。

$(document).ready(function() { 
 
\t var isMob; 
 
\t var mobMenClicked = false; 
 
\t var scrnRefresh = false; 
 
\t scaleSite(); 
 
\t $('.mobileMen').click(launchMenu); 
 
\t 
 
\t }); 
 

 

 

 
function scaleSite() 
 
{    
 
    // scaleVideo(); 
 
    scaleMenu();   
 
} 
 

 

 

 
function scaleMenu() 
 
{ 
 
    isMob=0; 
 
    if($(window).width() < 1066) 
 
    { 
 

 
     isMob=0; 
 

 
    } 
 
    else 
 
    { 
 

 
     isMob=1; 
 

 
    } 
 
    //chrome .hide Function Fix 
 
    $('.menuBar').css('display', 'inline-block'); 
 
    isMob=0; 
 

 
    alert(isMob); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>