2013-10-30 132 views
0

多次重定向讓我先說,我不是一個專家,當涉及到JavaScript的開始,但我已經做了我的研究並不能完全弄清楚,我有我的代碼做錯了什麼。對於我的網頁,我一直在編輯基本上有四種不同警報的反射相關遊戲,基於他們按下停止按鈕的速度。多個警報

這裏是我的代碼的一部分,它將顯示我的重定向頁面,我目前沒有被重定向到。無論您收到哪種警報,都會將您帶到最後一個讓我懷疑自己出錯的地方。

function remark(responseTime) { 
    var responseString = ""; 
    if (responseTime < 0.20) responseString = "well done!."; 
    window.location.href = "dfgr454.php"; 
    if (responseTime >= 0.20 && responseTime < 0.40) responseString = "nice."; 
    window.location.href = "fdkjgtry5.php"; 
    if (responseTime >= 0.40 && responseTime < 0.60) responseString = "could be better. "; 
    window.location.href = "dfg5654f.php"; 
    if (responseTime >= 0.60 && responseTime < 0.80) responseString = "that's no good."; 
    window.location.href = "bvcb56.php"; 
    if (responseTime >= 0.80 && responseTime < 1) responseString = "have you been drinking?"; 
    window.location.href = "dfgf643re.php"; 
    if (responseTime >= 1) responseString = "did you fall asleep?"; 
    return responseString; 
} 

如果有幫助(我不完全肯定會,因爲它沒有幫我),當我修改我的密碼嘗試的window.open相反,所有的人都在打開一次。有什麼辦法可以阻止這種情況發生?警報正常,但我希望他們重定向到特定的window.location我試圖與他們配對。請和謝謝你,任何建議將是完美的!

+0

格式的代碼是否正確(){ - } – Sarath

回答

1

正確的語法是

if(condition1) { 
    /* your code */ 
} else if(condition2) { 
    /* other code */ 
} 

所以,你的代碼應該是這個樣子:

function remark(responseTime) 
{ 
    var responseString=""; 
    if (responseTime < 0.20) { 
     responseString="well done!."; 
     window.location.href="dfgr454.php"; 
    } else if (responseTime >= 0.20 && responseTime < 0.40) { 
     responseString="nice."; 
     window.location.href="fdkjgtry5.php"; 
    } else if (responseTime >=0.40 && responseTime < 0.60) { 
     responseString="could be better. "; 
     window.location.href="dfg5654f.php"; 
    } else if (responseTime >=0.60 && responseTime < 0.80) { 
     responseString="that's no good."; 
     window.location.href= "bvcb56.php"; 
    } else if (responseTime >=0.80 && responseTime < 1) { 
     responseString="have you been drinking?"; 
     window.location.href="dfgf643re.php"; 
    } else if (responseTime >=1) { 
     responseString="did you fall asleep?"; 
    } 

    return responseString; 
} 

如果對方不是else if後使用一個if聲明,他們independendtly從每個測試其他。所以如果你的響應時間是< 0.2它也是< 1這會導致你意想不到的結果。

+1

我覺得不能夠明白這一點對我自己有點愚蠢,但它是我不太確定如何執行!非常感謝你,即使解釋很短,但非常清楚並且重要。我很欣賞編輯過的代碼,所以我可以真正看到下一次我需要做什麼。這也將在編碼方面爲我帶來很多幫助。謝謝。 ^^ –