Как различить, кто инициатор действия с элементом?

Доброго вечера.
Есть чекбокс, и листенер для события change. Иногда, смена состояния чекбокса происходит путем нативного щелчка по нему пользователем, а иногда - программно, через prop().
Вопрос - можно ли отличить, как именно было инициировано событие - нативно или вручную (программно)? Использование trigger'a отпадает (prop сам по себе вызовет событие change), так что доп. параметры в функцию-обработчик не передать. Как быть?

Буду благодарен за советы, спасибо.
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Выставляйте значение-флаг перед вызовом prop() или в момент вызова (при возможности):
изменилось значение - значит программно.
не изменилось - значит пользователь кликнул.
Ответ написан
Комментировать
@wellgo
Вообще-то prop (если речь о jQuery и prop=true) change на input[type=checkbox] не вызывает:) Проверьте или дайте кусок кода.

И почему нельзя использовать триггер я тоже не понял? Вы же делаете $(elem).prop('checked', true); почему это не заменить на $(elem).trigger('change.code') и ловить имя события?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы