2015-03-03 116 views
0

我有一個顏色數組最初['red', 'yellow', 'green', 'blue'],它是洗牌,可以說,["green", "red", "yellow", "blue"]在jQuery中記錄點擊的順序?

現在,我有一個交互框,用戶可以點擊這些框。

混洗陣列的第一個元素通過for循環顯示,我現在要提示用戶點擊一個框,如果它匹配這種顏色,它是'正確'並且如果不是,則想要繼續循環,這是'錯誤的',並想暫停循環,直到他點擊正確的顏色框。

我希望它貫穿盒子,直到所有顏色都被正確識別。

我無法弄清楚編寫上述語句的代碼。

請看http://jsfiddle.net/2cbcpq2r/2/,以便清楚地知道我在說什麼。

+0

我無法弄清楚如何我要記錄基礎上給我的當前單擊事件。 – 2015-03-03 09:45:47

+0

我認爲這個問題不夠好.. – 2015-03-03 09:45:53

+0

我試圖更好地說出問題。 @Regent但是,我希望'click'根據混洗陣列的當前元素進行檢查。 – 2015-03-03 09:51:23

回答

1
var counter = 0; 
var colorArr = ['red', 'yellow', 'green', 'blue']; 
$('div.box').click(function(){   
    if(this.className.indexOf(colorArr[counter])!=-1) 
     counter++; 
    else 
     alert('wrong'); 
    if(counter==colorArr.length) 
     alert('success'); 
}); 

改變你的HTML文件作爲

<div class="box blue" id="b1"></div> 
<div class="box green" id="b2"></div> 
<br> 
<div class="box yellow" id="b3"></div> 
<div class="box red" id="b4"></div> 
<br> 
<div class="disp" id="disp"></div> 

注:如果你不想添加類,然後使用name屬性在HTML中。

其中colorArr是顏色排列順序正確

我創建了跟蹤成功計數

如果用戶通過所有點擊成功警報顯示

如果用戶點擊了錯誤的顏色那麼計數器錯誤警報顯示

希望它有助於

+0

它總是出錯。它似乎沒有工作。 – 2015-03-03 10:07:31

+0

但我明白你的想法。這真好。我想我可以通過一些修改來解決問題。 :) – 2015-03-03 10:09:37

+0

http://jsfiddle.net/gopinathshiva/2cbcpq2r/4/ – 2015-03-03 10:09:41

0

html一個有些工作圍繞第二jQuery

試試這個

$('div.box').on('click', function() { 
    alert(currColor); 
    if($(this).hasClass(currColor)) { 
     alert('right'); 
    } else { 
     alert('wrong'); 
    } 
}); 

JS fiddle

+0

1。內聯JS已過時。此外,我沒有看到任何使用普通事件處理程序和內聯JS的相同元素。 2.我想顯示盒子的顏色(如果它是不正確的盒子)不是OP想要的。 3.爲什麼只需要一種顏色點擊? – Regent 2015-03-03 10:19:14