Три состояния одного блока при клике
При клике на блок, он должен загораться желтым цветом. Если кликнуть еще раз, он должен загореться красным. Если кликнуть еще раз - он вернется в исходное состояние, белый цвет.
Т.е. три цвета чередуются друг за другом: белый -> желтый -> красный И еще фишка в том, что эти состояния должны передаваться на бэкэнд. Т.е. без чекбоксов тут не обойтись. Сделал так: к <label> привязал чекбокс и когда состояние чекбокса меняется, меняется и цвет <label> (ну как обычно стилизуют чекбокс). Т.е. сейчас два состояния: белый цвет и желтый. Думаю как сделать чтоб еще красный появлялся: сверстал еще один скрытый чекбокс и label, и как то их нужно будет показывать в нужный момент https://codepen.io/anon/pen/ZmBzYL |
Цитата:
|
Цитата:
Но как тогда это сделать? |
yaparoff, если последовательно, то не флажок, а группа радио кнопок. Если Ajax, то можно сразу передавать состояние на сервер без кнопок.
|
Цитата:
|
без аякса, чекбоксов и радио. Сколько угодно вариантов цвета
<div id="blok" style="width:50px;height:50px;border:1px solid black"></div> <form> <input type="text" id="currentcolor" name="currentcolor" value="white" style = "display:none;"> </form> <script> var color = ["white","green","yellow","red"], i = 0; blok.onclick = function() { i = i < (color.length - 1)?i+1:0; this.style.backgroundColor = color[i]; currentcolor.value = color[i]; } </script> |
j0hnik, Dilettante_Pro, точно. гениально! большое спасибо!
|
Часовой пояс GMT +3, время: 06:21. |