2012-08-02 103 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/