Навесить debounce на обработчик нескольких событий
Рабочий код
Срабатывает при вводе в textarea и выбирает автоматом нужный пункт radio. Но данный код вызывает слишком много срабатываний. То есть radio кликается и запускает функции столько раз сколько ввел символ. Надо вместо setTimeout повесить debounce. Пробовал так: $('input[name=fld7]').keyup($.debounce(handle, 300)); Не вышло. P.S. Можно попробовать throttle, но думаю он не подойдет, т.к. будет искажать данные подсчета- Количество символов изменится а функция может не сработать а остаться замороженной. Выручайте. |
Цитата:
Врубите setInterval один раз раз и проверяйте что юзер навводил пока скрипт моргал 2 с. В любой он-лайн гаме это стандартные способы обеспечить реал-тайм рендер. |
Идея конечно интересная. Но получается, если человек останется на странице, то он вызовет N количество раз функцию. N = время/интервал
Сервер грузить не айс =) Хотя. Появилась идея сделать совмество с clearInterval... подумаю... |
Ну тогда сравнивайте что было до и после и, если после == до, прекращайте цикл вплоть до нажатия клавиши.
|
нифига... =)))
Как я и говорил сетИнтервал грузит функцию также. КлеарИнтервал отрубает повтор, но онКейАп по ходу подрубает её заново =))) Еще варианты?) на последнее сообщение: как сравнить что было до и после? Если массив у меня выводится через .html();? |
Начините уже по-человечески. Не с кодов, а с изложения задачи.
|
Цитата:
Задача еще раз на простом языке: Ограничить количество вызовов срабатывания функции .onkeyup по времени (после того как человек заполнил инпут прошло 2 сек и выбирается нужный radio, если до 2 сек человек продолжил заполнять, то отсчет 2 сек начинается заново и radio будет выбран как он перестанет заполнять и пройдет 2 сек.) код есть в первом сообщении |
Задача решена с помощью .onclick =)) и добавление невозможности человеку продолжить путь не нажав кнопку))
|
Цитата:
По-человечески описывается например так: хочу чтобы при нажатии кнопки х на экране возникала буква х в том месте, где я укажу с помощью мыши. |
Часовой пояс GMT +3, время: 05:12. |