greyhard
@greyhard
Программист, автолюбитель

Как активировать событие на элементе из javascript?

Есть чекбокс на нем висит функция по событию onchange

При изменений стостояния чекбокса из скрипта через .attr(«checked»,«checked») событие не срабатывает.

Подскажите как изменять элемент что бы событие срабатывало, или как принудительно сообщать что элемент изменился.
  • Вопрос задан
  • 9899 просмотров
Решения вопроса 2
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
$(element).trigger('change');
Ответ написан
Комментировать
@kastigar
В jQuery любое событие можно вызвать с помощью ф-ции .trigger()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Voenniy
@Voenniy
попробуйте $(element).click(); или $(element).change();
Ответ написан
Комментировать
taliban
@taliban
php программист
Комментировать
itlife
@itlife
Есть такие камушки подводные

1. $(element).click(); — Чекбокс изменит состояние во всех браузерах, но в Опере при этом не сработает событие change, которое в других браузерах срабатывает вслед за click…

2. $(element).change() — не во всех браузерах меняет состояние чекбокса, кажется тут уже IE отличился… но не помню точно… ) В моём случае удовлетворило $(element).click().change() если не беспокоится о двойных срабатываниях. Если событие change не важно… достаточно $(element).click();

3. После динамического изменения чекбокса, становится неожиданно трудно в js проверить 1 он или 0 получился… При проверки атрибута attr('checked') или свойства checked у DOM объекта дают разные результаты в каких-то браузерах. Если проверять во время клика вполне вероятно расхождение из-за того что одни браузеры меняют состояние чекбокса до клика другие после клика. Если в обработчике клика проверять состояние чекбокса, то можно наткнуться на разные результаы в разных браузерах, но это лишь подозрения… так как все глюки исчезли с использованием jquery селектора value=$(element).is(':checked'); чего и советую :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы