2010-12-17 21 views
2

我有一个3分div的,jQuery的脚本将被点击一个div当一个类:复加的jQuery

.red{ background-color: red; } 

我想要做的是修改了jQuery这样一旦时间。 red类的加入下次就会增加.blue.red.blue等等...

我的脚本ANS可以the in this demo是这样的:

var $a = $('.box'); 
$a.click(function(){ 

     $(this).addClass('red'); 
}); 

对不起,我不是分享更多,但我可怕的尝试只会混淆。

我希望我已经说清楚了,如果不是,请提问!

在此先感谢!

UPDATE:

我觉得这个问题还不够清楚,所以我会尝试进一步解释。

什么需要bascially将三个格,第一次点击,变成点击DIV到,第二转动点击进入蓝色,红色的等等,他们应该切换(去转红色或蓝色点击第一次点击是唯一的一个计数)

回答

7

编辑:基于下面的评论,它听起来像你想要颜色替换每个后续项目被点击,它可以不被尊重。

这应做到:

例子:http://jsfiddle.net/patrick_dw/zUdWq/

$('a').click((function() { 
    var i = 0; 
    var colors = ['blue','red']; 
    return function() { 
     $(this).addClass(colors[i = ++i % 2]).unbind('click'); 
    }; 
})()); 

它使用一个封闭环绕的变量。如果你不需要/不需要,那么没有关闭就是一样的。

例子:http://jsfiddle.net/patrick_dw/zUdWq/1/

var i = 0; 
var colors = ['blue','red']; 

$('a').click(function() { 
    $(this).addClass(colors[i = ++i % 2]).unbind('click'); 
}); 

原来的答复:

$a.addClass('red').click(function(){ 
    $(this).toggleClass('red blue'); 
}); 

这将通过增加red类开始加载网页时,则此后将切换red和每个cl上有blue ICK。

如果你想开始没有对项目的任何类,那么你可以这样做:

$a.click(function(){ 
    if(!this.className) { 
     this.className = 'red'; 
    } else { 
     $(this).toggleClass('red blue'); 
    } 
}); 
+0

整洁!我不知道'toggleClass'接受了多个类 – Eric 2010-12-17 21:21:30

+0

这真是太棒了!谢谢!!它不完全是我问(因为我描述不正确!)我会尝试修改它,也许以后再问:) – Trufa 2010-12-17 21:22:41

+0

@patrick事情是我不想要转动切换,我的箴言是,他们应该能够回到前一个,你选择的那个(像之前一样),但现在是红蓝色的红色蓝色。我不知道我是否已经解释了我自己 – Trufa 2010-12-17 21:25:59