2014-04-29 96 views
0

我正在嘗試編寫一個應用程序,它有一個多選題測驗。我以一種簡單而有點硬編碼的方式編寫它。我已經創建了一系列問題和二維數組作爲我的「數據庫」。我的問題是,當我迭代循環時,我的應用程序立即轉到最後一個問題,即使理想世界中的語句應該讓用戶與每個問題交互。Javascript循環與事件動作監聽器和按鈕

我while循環

var i = 0; 

while i<10 then 
    make the question view 
    make the answer view 
    make the answers clickable 
    calculate scoring 
    if the next button is pushed and i < 8 then i+=1 
    /*this prevents the app from building but when i put the i+=1 outside this control statement it goes directly to the last question in my database*/ 

end While 

什麼想法?我的代碼真的很長,不知道我應該發佈它

+0

你可以發佈你的真實代碼示例,而不是僞代碼? 我懷疑你使用javascript循環犯了相當常見的錯誤。關於它的幾個其他問題:http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example http://stackoverflow.com/questions/1451009/javascript-infamous-loop-issue – daniula

+0

這裏可能存在關閉的問題,但我懷疑這是一個更基礎的算法問題。 –

回答

0

而不是在一個while循環中完成所有操作,您應該採取稍微不同的方法。

創建一個上面做while循環塊的函數,並使用一個變量來跟蹤當前顯示的問題和答案。然後,當用戶點擊下一個,前進到下一對,直到用戶完成。

var current = 0, until = 10; 
function showCurrent() { 
    // make the question view 
    // make the answer view 
    // make the answers clickable 
    // calculate scoring 
} 

function goToNext() { 
    current += 1; 
    if (current === until) { 
     // carry on with whatever is next 
    } 
    else { 
     showCurrent(); 
    } 
} 

showCurrent();