2012-02-22 91 views
0

我正在構建一個hang子手遊戲,我試圖弄清楚如何在jQuery中使用if語句一次顯示兩個div類樣式,但是我在展示第二個div類風格變化時遇到了一些麻煩,這是一個紅色框。使用if/else語句一次在jquery中更改多個div類

如果用戶第一個答案錯了​​,它會顯示一個黃色框,如果他們第二次錯誤,它會在添加到計數器時顯示一個紅色框。請幫忙?這裏是我的代碼,並提前感謝。

function displayWrong() { 
    jQT.goTo("#AAC6B101-LG"); 
    if ($("div#HMBoxButton div." + bn).hasClass("firstwrong")) { 
     $("div#HMBoxButton div." + bn).addClass("wronganswer"); 
     $("div." + bn).unbind('touchstart'); 
     HMnumWrong++; 
    } 
    else { 
     $("div#HMBoxButton div." + bn).addClass("firstwrong"); 
     HMnumWrong++; 
     alert("Correct:" +HMnumRight+ ", Wrong:" +HMnumWrong); 
    } 
} 
+1

你的代碼有什麼問題? – Jasper 2012-02-22 20:33:23

+0

當我回答第一次嘗試錯誤的問題時,按鈕圖像確實變成黃色(第一個錯誤的類),這是好的,但當我回答錯誤時,它應該再次添加到計數器,並將紅色這是(錯誤的答案)但它沒有... – YnattirB 2012-02-22 20:35:39

回答

1
function displayWrong() { 

    //since we will use the selection of the div more than once, we can cache it for better performance 
    var $element = $("#HMBoxButton").find("." + bn); 

    jQT.goTo("#AAC6B101-LG"); 

    if ($element.hasClass("firstwrong")) { 

     //notice the function chaining 
     $element.addClass("wronganswer").unbind('touchstart'); 
     HMnumWrong++; 
    } 
    else { 
     $element.addClass("firstwrong"); 
     HMnumWrong++; 
    } 
    alert("Correct:" +HMnumRight+ ", Wrong:" +HMnumWrong); 
} 

您的代碼應該工作。所以也許bn變量在第一個和第二個錯誤答案之間被改變。這裏是一個演示:http://jsfiddle.net/f9VKY/

+0

我把所有東西都放在了你喜歡的地方,它仍然在做同樣的事情,並且出於一些奇怪的原因,沒有閱讀紅色圖像功能的第二個錯誤改變。我檢查了我的html,css和jquery文件,但沒有看到任何錯誤,並且與您的代碼非常相似:-( – YnattirB 2012-02-22 21:37:09

+0

如果您發佈鏈接,我可以簽出您的代碼,但我相當肯定您有錯誤或錯誤在別的地方,就像你確定類名是正確的,並且這些類中的屬性聲明是正確的嗎? – Jasper 2012-02-22 21:39:03

+0

你是否意外地將HMnumWrong重置在某處?也許嘗試在應用程序或全局範圍中顯式聲明該變量? – 2012-02-22 21:57:35