2016-08-18 105 views
0

想知道如果有人能引導我走向正確的方向,我正在嘗試使用Javascript來製作一個小遊戲來幫助我學習。從本質上講,我聲明瞭所有我想要在我的函數外部進行更改的變量,以便它們作用於代碼中的全局函數,但if語句似乎沒有證明是成功的,因爲教程指出我的代碼是正確的,請參閱下面的代碼;Javascript - if statement error

var Refresh; 
Refresh = "InActive"; 

var Counter; 
Counter = 0; 

var StartTime; 


function StartGame() { 
    var StartDate; 
    StartDate = new Date(); 
    StartTime = d.getTime(); 
    Refresh = "Active"; 
} 


function FunctionB1() { 
    if (Refresh == "Active"){ 
     document.getElementById("Bean1").style.display = "None"; 
     Counter ++; 
     document.getElementById("BeanCount").innerHTML = Counter + " Out of 150"; 
    } 
} 
+1

我看不到'var Refresh'在您的發佈代碼中的任何位置聲明。 –

+0

@GlenDespaux第一行... – Teemu

+0

啊我看到了,它沒有放入代碼塊。對不起,關於 –

回答

0

您需要更改d.getTime();StartDate.getTime();以反映變量名稱的變化。

function StartGame() { 
StartTime = new Date().getTime(); 
Refresh = "Active"; 
} 

的jsfiddle:Solution

編輯,包括Xufox的改善。

+0

這可能是'StartTime = new Date()。不需要不必要的變量。 – Xufox

0

嘗試從StartGame()函數返回變量Refresh。 它看起來是這樣的:你叫StartGame後()

function StartGame() { 
    var StartDate; 
    StartDate = new Date(); 
    StartTime = d.getTime(); 
    Refresh = "Active"; 
    return Refresh; 
} 

function FunctionB1() { 
    var startRefresh = StartGame(); 
    if (startRefresh == "Active"){ 
     document.getElementById("Bean1").style.display = "None"; 
     Counter ++; 
     document.getElementById("BeanCount").innerHTML = Counter + " Out of 150"; 
    } 
} 

FunctionB1(); // Call the function 
0

刷新變量變得可訪問。由於尚未聲明,因此無法訪問FunctionB1中的Refresh變量。 試試這樣的

function StartGame() { 
    Refresh = "Active"; 
} 

function FunctionB1() { 
    if (Refresh == "Active"){ 
     console.log('done'); 
    } 
} 

function Game() { 
    StartGame() 
    FunctionB1() 
    console.log(Refresh) // Active 
};