JQuery обнаруживает событие Programatic change - PullRequest
12 голосов
/ 11 декабря 2008

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

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

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

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

Ответы [ 3 ]

15 голосов
/ 11 декабря 2008

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

jQuery('#element').change();
5 голосов
/ 11 декабря 2008

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

1 голос
/ 24 мая 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...