Настроих jsFiddle тук. Но по-долу е кодът...
HTML
<div class="square square0"></div>
<div class="square square1"></div>
<div class="square square2"></div>
<div class="square square3"></div>
Javascript
$('.square').click(function () {
if ($(this).hasClass('square0')) {
$(this).removeClass('square0').addClass('square1');
return false;
}
if ($(this).hasClass('square1')) {
$(this).removeClass('square1').addClass('square2');
return false;
}
if ($(this).hasClass('square2')) {
$(this).removeClass('square2').addClass('square3');
return false;
}
if ($(this).hasClass('square3')) {
$(this).removeClass('square3').addClass('square0');
return false;
}
});
CSS
.square { display: block; height: 100px; width: 100px; }
.square0{ background-color: #000; }
.square1{ background-color: #F00; }
.square2{ background-color: #0F0; }
.square3{ background-color: #00F; }
Начинът, по който цигулката е настроена в момента, е най-вече това, което искам. Потребителят щраква върху цветовете и той преминава през черно, червено, зелено, синьо и отново обратно към черно. Обаче има обрат!
Представете си черното като стойност по подразбиране/празно, а цветовете (червено, зелено и синьо) са различните опции. Ако дадена стойност вече е цвят, когато потребителят щракне върху нея, тя ще се върне обратно към черно. Ако е черен, когато потребителят щракне върху него, той преминава през цветовете.
Ето какво е...
От момента, в който щракнат черно (и то стане червено), започва таймер за 2 секунди. Ако потребителят не щракне в рамките на 2 секунди, следващия път, когато щракне върху него, той става черен (стойност по подразбиране/празно). Но всеки път, когато продължат да кликват, за да преминат през цветовете (включително обратно към черно), този таймер се нулира на 2 секунди отново.
И накрая, ако щракнете върху черен блок, за да го превърнете в червен, и след това върху друг блок, и след това обратно към предишния, той ще го превърне в черен (не циклично) поради самия факт, че сте щракнали далеч от този предишен блок, което получава отървете се от таймера.
Знам, че е много - но чувствам, че нещо с толкова проста концепция не би трябвало да е t̲o̲o̲ h̲a̲r̲d̲ за разгадаване, но по някаква причина просто не мога обгръщам ума си около него. Вероятно е глупаво просто.
Помогни ми Оби Уан Stackoverflow(i?)... ти си единствената ми надежда!