JQuery обнаруживает событие программного изменения

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

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

или если какой-нибудь простой старый JavaScript изменит свое значение?

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
12
0
4 419
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

Идеально! Именно то, что я искал.

neminem 03.06.2013 22:47

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

Тем не менее, иногда это единственный вариант. Я согласен, что это беспорядочно, но это не должно вызывать проблем, если вы выбираете большой интервал (500 мс по моему опыту).

Adrian Grigore 27.06.2011 15:48

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

Другие вопросы по теме