Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2018, 11:47
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

Три состояния одного блока при клике
При клике на блок, он должен загораться желтым цветом. Если кликнуть еще раз, он должен загореться красным. Если кликнуть еще раз - он вернется в исходное состояние, белый цвет.

Т.е. три цвета чередуются друг за другом:
белый -> желтый -> красный

И еще фишка в том, что эти состояния должны передаваться на бэкэнд. Т.е. без чекбоксов тут не обойтись.

Сделал так: к <label> привязал чекбокс и когда состояние чекбокса меняется, меняется и цвет <label> (ну как обычно стилизуют чекбокс).
Т.е. сейчас два состояния: белый цвет и желтый.

Думаю как сделать чтоб еще красный появлялся:
сверстал еще один скрытый чекбокс и label, и как то их нужно будет показывать в нужный момент

https://codepen.io/anon/pen/ZmBzYL
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2018, 11:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от yaparoff
Т.е. без чекбоксов тут не обойтись.
кто вам такое сказал
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2018, 11:58
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

Сообщение от j0hnik Посмотреть сообщение
кто вам такое сказал
если эти данные реально передавать на бэкэнд без чекбоксов, то ок.
Но как тогда это сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2018, 12:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

yaparoff, если последовательно, то не флажок, а группа радио кнопок. Если Ajax, то можно сразу передавать состояние на сервер без кнопок.
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2018, 12:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от yaparoff
если эти данные реально передавать на бэкэнд без чекбоксов, то ок
конечно реально. меняется цвет, значит меняется стиль, но даже это вам не надо, стиль меняет функция обработчик клика в которой эти самые цвета есть, что мешает этот цвет вместе с применением к элементу отправлять ajax-ом
Ответить с цитированием
  #6 (permalink)  
Старый 12.11.2018, 12:10
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

без аякса, чекбоксов и радио. Сколько угодно вариантов цвета
<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>

Последний раз редактировалось Dilettante_Pro, 12.11.2018 в 12:52.
Ответить с цитированием
  #7 (permalink)  
Старый 12.11.2018, 16:18
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

j0hnik, Dilettante_Pro, точно. гениально! большое спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JQuery При клике на кнопку Restore данные восстанавливаются Tanya51 Общие вопросы Javascript 12 02.08.2017 00:05
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
всплывающий блок при клике на input ChikiBOBONI (X)HTML/CSS 1 31.10.2016 11:40
Fancybox при клике на метку Яндекс.Карт не работает с параметрами imax57 jQuery 0 04.10.2014 09:18
скрыть открыть тот или иной блок при клике на ссылке ufaclub jQuery 7 26.08.2014 00:14