#javascript #jquery #event-handling #paste
#javascript #jquery #обработка событий #вставить
Вопрос:
У меня есть скрипт поиска AJAX, который я создаю, и он выдает результаты в режиме реального времени — проблема в том, что я не могу запустить свою функцию поиска, если входные данные вводятся с помощью метода вставки правой кнопкой мыши.
Я пробовал onchange, и я пробовал события изменения jquery — nada. Затем я попробовал событие onmouseup, но оказалось, что оно запускается за пределами элемента ввода, потому что меню, вызываемое правой кнопкой мыши, выходит за его границы, если это имеет смысл.
Я решил, что, вероятно, смогу выполнить это с помощью обработчика щелчков по всему документу, который проверяет, не превышает ли длина значения входного текстового элемента 0 при его срабатывании, но это кажется неаккуратным и излишним.
У кого-нибудь есть лучшее предложение?
Ответ №1:
Попробуйте paste
событие.
$('input[type="text"]').bind('paste', function() { ... });
Комментарии:
1. Не знал, что это существует, попробую как можно скорее.
2. Вы не закрыли свою $ parenthesis — если кому-то еще это понадобится позже, обязательно добавьте это.
3. Ну, кажется, это работает, если в поле ввода уже есть текст, например, если есть имя, и я выделяю его и щелкаю правой кнопкой мыши, чтобы вставить имя, это срабатывает — однако, если я первым делом щелкаю правой кнопкой мыши, чтобы вставить, прежде чем делать что-либо еще на странице, это не срабатывает… Я в замешательстве
4. Ах, я понял это, функция вставки запускается до того, как вставка действительно произойдет (вот почему она работала, когда что-то уже было в поле, а затем было выбрано и вставлено), поэтому мне пришлось добавить короткий тайм-аут, и теперь это работает нормально, спасибо за помощь.