JavaScript / jQuery - после выполнения onclick-callback состояние «проверено» сбрасывается - PullRequest
0 голосов
/ 01 февраля 2012

Это сводит меня с ума.Я просто не могу этого понять.

Я написал функцию фильтра, основанную на флажках и щелкающих по их ярлыкам.Я проверяю проверенное состояние флажков и показываю совмещенные элементы списка (остальные элементы скрыты).Я использую плагин 3rdparty, который стилизует флажки (вырезанные из примера) и проверяет флажки, в то время как другие события onClick выполняют фильтрацию.

Проблема заключается в том, что после «проверенного» состояния успешно устанавливается внутри функции обратного вызоваэто "внезапно" становится сброшенным!Я не могу понять, почему это происходит.

Я реализовал базовую логику (без стилизации) здесь: http://jsfiddle.net/3Xtuh/13/ и прошу всех помочь мне решить эту проблему, пожалуйста.

Ответы [ 3 ]

1 голос
/ 01 февраля 2012

Проблема в том, что вы вызываете событие click вручную, а затем, когда ваша функция завершает работу, вызывается событие click по умолчанию.

Передав переменную события вашему обработчику кликов и вызвав событие.preventDefault ();исправляет это поведение.

См. пример здесь: http://jsfiddle.net/3Xtuh/14/

0 голосов
/ 01 февраля 2012

Это поведение браузера по умолчанию, которое портит ваш js-скрипт. По умолчанию нажатие на метку, которая либо обернута вокруг флажка, либо имеет установленный допустимый атрибут for, переключает checked состояние этого флажка.

Вы прикрепили пользовательский обработчик onclick к ярлыкам.

Так что же происходит при нажатии на ярлык? Ваш обработчик кликов срабатывает (если вы измените состояние целевого флажка), а затем

0 голосов
/ 01 февраля 2012

HTML label будет проверять соответствующий флажок, даже если он скрыт (с использованием CSS), поэтому нет необходимости заново изобретать колесо.

Вы должны использовать событие change () . Попробуйте это demo и просмотрите вашу консоль.

...