Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Чекбоксы-картинки (https://javascript.ru/forum/events/50471-chekboksy-kartinki.html)

phpboy 27.09.2014 15:10

Чекбоксы-картинки
 
Ребят, помогите пожалуйста, я уже наверное часа 4 потратил долбаясь с картинками-чекбоксами.

Задача:
По клике на картинку выделяется чекбокс.
При повтоном клике - снимается чекбокс.
При третьем клике см строку 1
и т.д.

Проблема:
дублируется событие клик и у меня никак не получается отменить его, хотя пробовал уже и preventDefault и return false и чего только не пробовал.


Вот код, который я начал сам писать после того как библиотека верстальщика дала понять, что второй раз чекбокс она уже не выберет.

jQuery(document).ready(function(){
	
	$(document).on("click", ".my_checkbox", 
		function(e){
			e.preventDefault();
			change($(this));
		}
	);
	

});

function change(el){
	alert(1);
	var el = el,
        input = el.find("input").eq(0);
	if(	  !input.attr("checked") ) {
		alert(2);
		input.click();
	}
	else{
		input.click();
	}
	
}

kostyanet 27.09.2014 17:10

Это не проблема, проблема в том что вы начали-то хорошо, а потом перешли сразу к ответу, к своему варианту ответа. Так что после третьего щелчка происходит с чекбоксом?

phpboy 27.09.2014 18:11

Не до конца понял вопроса.

Если вопрос касается задачи, то после 3-го щелчка он должен нажиматься. Вообще это все делается для того что бы заменить чекбоксы картинками из макета. При этом настоящие чекбоксы должны существовать что бы отправлять данные на сервер

Если вопрос касается того что происходит в МОЕМ коде, то он просто не выделяется и все. Не происходит ничего

Rise 27.09.2014 21:48

phpboy, тыц

phpboy 28.09.2014 17:06

Rise, вот спасибо. И как я их из виду упустил лейблы.

Было уж обрадовался, но когда сделал все как хотел понял, что лейблы эти лагают...

У меня в лейбле стоит фон картинкой и меняя положение фона он у меня выглядит либо чекнутым, либо нет. Фон меняется по клику. И вот проблема в том, что если быстро кликать на это дело, то галочка в лейбле и галочка в чекбоке перестают быть синхронизированными и скачут вразнобой. Получается рабочая, но не очень надежная штука...

kostyanet 01.10.2014 05:40

Вот видите, можете если захотите. Таким и должен быть вопрос - я хочу вот так, делаю вот это, а получается как всегда.

Показывайте кусок хтмля где оно. И надо видеть как переключается фон.

В теории картинка отражает значение чек-бокса. То есть саму себя она менять не должна. Щелчок по картинке, не важно в какой обертке - вызывает изменение значение элемента, который уже показывает это изменение - картинкой.


Часовой пояс GMT +3, время: 06:42.