Комментарии 11
полная имитация клика это mousedown+mouseup. иначе думаю если нажмете на другой элемент а кнопку отпустите над chb то тоже сработает
+2
Вместо $("#chb").click(); попробуйте $("#chb").trigger('click'); или $("#chb").triggerHandler('click');
+6
Документация jQuery говорит нам, что .click() «is a shortcut for .bind('click', handler) in the first variation, and .trigger('click') in the second.» А вот с triggerHandler интереснее: «The .triggerHandler() method behaves similarly to .trigger(), with the following exceptions:
— The .triggerHandler() method does not cause the default behavior of an event to occur (such as a form submission).»
То есть, можно использовать тот же click(), дополняя имитацией стандартного поведения. Спасибо, попробую, возможно, так будет чуть проще.
— The .triggerHandler() method does not cause the default behavior of an event to occur (such as a form submission).»
То есть, можно использовать тот же click(), дополняя имитацией стандартного поведения. Спасибо, попробую, возможно, так будет чуть проще.
+2
jQuery тут сбоку припёка, то же самое получите и при использовании onclick.
я просто по клику делал setTimeout(handler, 0)
я просто по клику делал setTimeout(handler, 0)
+2
имхо проще было бы использовать в обработчике #chb не this.checked а внутреннюю переменную. Добавилась бы только ее инициализация вначале.
+1
Что-то знакомое.
Помню что-то похоже меня удивило и причем оно по разному в IE и FF по порядку обрабатывалось.
Я в итоге добавлял на события change и keypress, а изначально пытался на click.
Помню что-то похоже меня удивило и причем оно по разному в IE и FF по порядку обрабатывалось.
Я в итоге добавлял на события change и keypress, а изначально пытался на click.
0
все очень просто.
есть чекбокс и его родной онклик который меняет его состояние
есть навешаное тобой событие которое по клику меняет его еще раз
1 если ты реально кликаешь на чекбокас происходят оба события и состояние меняться два раза тоесть становиться снова тем которое было
2 если ты програмно вызыввешь триггер то происходят оба события с тем же результатом что и прошлый раз
3 если ты вызываешь тригер хендлер то происходит только то событие которое ты навесил через жуквери.
возможно тебе будет интересно как я воевал с этим в свое время
mabp.kiev.ua/2007/07/03/onmouseover_checkbox_toggler/
есть чекбокс и его родной онклик который меняет его состояние
есть навешаное тобой событие которое по клику меняет его еще раз
1 если ты реально кликаешь на чекбокас происходят оба события и состояние меняться два раза тоесть становиться снова тем которое было
2 если ты програмно вызыввешь триггер то происходят оба события с тем же результатом что и прошлый раз
3 если ты вызываешь тригер хендлер то происходит только то событие которое ты навесил через жуквери.
возможно тебе будет интересно как я воевал с этим в свое время
mabp.kiev.ua/2007/07/03/onmouseover_checkbox_toggler/
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Анатомия .click() или история одной проблемы