Как различить, кто инициатор действия с элементом?
Доброго вечера.
Есть чекбокс, и листенер для события change. Иногда, смена состояния чекбокса происходит путем нативного щелчка по нему пользователем, а иногда - программно, через prop().
Вопрос - можно ли отличить, как именно было инициировано событие - нативно или вручную (программно)? Использование trigger'a отпадает (prop сам по себе вызовет событие change), так что доп. параметры в функцию-обработчик не передать. Как быть?
Выставляйте значение-флаг перед вызовом prop() или в момент вызова (при возможности):
изменилось значение - значит программно.
не изменилось - значит пользователь кликнул.
Вообще-то prop (если речь о jQuery и prop=true) change на input[type=checkbox] не вызывает:) Проверьте или дайте кусок кода.
И почему нельзя использовать триггер я тоже не понял? Вы же делаете $(elem).prop('checked', true); почему это не заменить на $(elem).trigger('change.code') и ловить имя события?