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

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

Есть чекбокс на нем висит функция по событию onchange
При изменений стостояния чекбокса из скрипта через .attr(«checked»,«checked») событие не срабатывает.
Подскажите как изменять элемент что бы событие срабатывало, или как принудительно сообщать что элемент изменился.
  • Вопрос задан
  • 9595 просмотров
Пригласить эксперта
Ответы на вопрос 5
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
$(element).trigger('change');
Ответ написан
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'); чего и советую :)
Ответ написан
Ваш ответ на вопрос

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

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