,您仍然可以使用toggleClass
並把它傳遞一個函數:
$(this).toggleClass(function() {
if ($(this).hasClass('red')) {
return 'green red';
}
if ($(this).hasClass('green')) {
return 'blue green';
}
if ($(this).hasClass('blue')) {
return 'red blue';
}
});
不是最簡單的代碼,雖然維護,所以它可能會更好地把它包在一個插件。
http://jsbin.com/inaduy/edit#javascript,html,live
現在在做一個非常基本的插件(即需要一點驗證)。您只需傳遞一個包含要交換的類對象的數組。
var classArray = [{current: 'red', next:'green'}, {current:'green', next:'blue'}, {current:'blue', next:'red'}];
$('#hello').click(function() {
$(this).toggleRotate(classArray);
});
(function($) {
$.fn.toggleRotate = function(classes) {
return $(this).toggleClass(function() {
var l = classes.length;
for (var i = 0; i < l; i++) {
if ($(this).hasClass(classes[i].current)) {
return classes[i].current + ' ' + classes[i].next;
}
}
// If it makes it here return the first current value
return classes[0].current;
});
};
})(jQuery);
http://jsbin.com/inaduy/2/edit