У меня есть страница с полем ввода и функция, которая обрабатывает значение этого поля ввода и создает фрагмент текста. Я хочу, чтобы этот текст всегда был актуален по отношению к содержимому поля ввода, поэтому я прикрепил к нему несколько обработчиков событий с помощью jQuery для отслеживания любых изменений:
$('#input').bind('keyup cut paste', function(){...});
Это хорошо работает в большинстве случаев. Всякий раз, когда пользователь изменяет содержимое с помощью клавиатуры каким-либо образом или щелкает правой кнопкой мыши, чтобы использовать функции вырезания или вставки, текст обновляется немедленно. Тем не менее, есть два события, которые я до сих пор не выяснил, как поймать, если это вообще возможно сделать:
- Когда пользователь выбирает текст и перетаскивает его, он занимает другую позицию в поле ввода
- Когда пользователь использует действие «Удалить» в контекстном меню, вызываемом правой кнопкой мыши
Обе они, конечно, могут быть обнаружены путем привязки события change
, но проблема этого подхода заключается в том, что он не срабатывает, пока поле ввода не потеряет фокус. Весь смысл этих привязок заключается в обновлении текста в режиме реального времени при изменении значения поля ввода, поэтому change
не годится.
Английский - мой второй язык, поэтому я мог просто плохо формулировать результаты поиска в Google, но пока они ничего не нашли. Я не нашел никаких решений для этого после того, как пролистал пару связанных SO страниц, поэтому я спрашиваю здесь. Есть ли какое-нибудь событие, связанное с этим, которого я не знаю? Если нет, могу ли я выбрать другой подход? Или это просто невозможно с простым Javascript?