2015-03-03 78 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