Подтвердить что ты не робот

Событие с программным изменением JQuery

Если я выполняю jQuery (expr).change(function), тогда я могу запустить функцию события, когда пользователь внесет изменение в значение.

Можно ли запустить это, если он изменился программно, т.е. если я вызываю jQuery (expr).val( "moo" ).

или если какой-то простой старый JavaScript меняет значение?

Спасибо за любую помощь.

4b9b3361

Ответ 1

После изменения значения вы можете запустить событие самостоятельно и, таким образом, вызвать все обработчики onchange.

jQuery('#element').change();

Ответ 2

Изменение значения непосредственно в JS не связано с тем, что jQuery может прослушать для запуска события изменения. Как говорит Сандер, вы можете запустить обработчик событий самостоятельно. Если у вас нет контроля над другим кодом, изменяющим эти значения, и это не вариант, вам не повезло. Единственный другой вариант, который мог бы работать, состоял бы в том, чтобы наблюдатель наблюдал за значением на интервале с помощью setTimeout, что действительно беспорядочно и, вероятно, не очень хорошая идея.

Ответ 3

jQuery v1 + поддерживает программный запуск обработчиков - я использовал этот метод в отличие от метода .change(), поскольку он позволяет при необходимости запускать несколько других обработчиков (например, некоторые пользовательские обработчики). Документация по API находится по адресу: http://api.jquery.com/trigger/