2012-08-02 102 views
-1

我有一个背景色为红色的div。在点击这个div的背景颜色应该改变循环顺序..红色,绿色和灰色..周期应该继续。jquery - 按循环顺序背景颜色

我不希望使用任何的jQuery插件来实现这一目标

请参阅本jsfiddle

+4

好的,开始编写代码,我们会帮助你 – Ibu 2012-08-02 06:11:40

+0

即使你不想使用jQuery插件,我认为这是由@Raynos(http://stackoverflow.com/a/6051567/325742)这是做这件事的好方法。 – 2012-08-02 07:12:58

回答

1

DEMO

<div class="myDiv"></div>​ 

div { 
    background: #3f3; 
    height: 40px; 
    width: 40px;  
} 

var cur = 0; 
var colors = ['#3f3', '#f33', '#33f', '#ff3']; 

$('.myDiv').click(function() { 
    cur = (cur + 1) % colors.length; 
    $(this).css('background', colors[cur]); 
}); ​ 
1

您可以使用data储存当前状态:

var classes = ['red', 'blue', 'green', 'yellow'] 

$('#box').click(function() { 
    var box = $(this); 
    var index = box.data('current-index') || 0; 
    index++; 
    if (index >= classes.length) 
     index = 0; 
    box.data('current-index', index); 

    box.removeClass(classes.join(' ')); 
    box.addClass(classes[index]); 
}); 

工作实例e http://jsfiddle.net/jD6XK/