Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2014, 01:44
Интересующийся
Отправить личное сообщение для Elphet Посмотреть профиль Найти все сообщения от Elphet
 
Регистрация: 11.01.2014
Сообщений: 19

Навесить debounce на обработчик нескольких событий
Рабочий код
Срабатывает при вводе в textarea и выбирает автоматом нужный пункт radio.
Но данный код вызывает слишком много срабатываний. То есть radio кликается и запускает функции столько раз сколько ввел символ.

Надо вместо setTimeout повесить debounce.
Пробовал так:
$('input[name=fld7]').keyup($.debounce(handle, 300));

Не вышло.

P.S. Можно попробовать throttle, но думаю он не подойдет, т.к.
будет искажать данные подсчета- Количество символов изменится а функция может не сработать а остаться замороженной.

Выручайте.

Последний раз редактировалось Elphet, 21.01.2014 в 22:58.
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2014, 12:05
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Elphet
То есть radio кликается и запускает функции столько раз сколько ввел символ.
Потому что keyup. Задержка абсолютно ничего не срезает, а только перемещает в будущее на 2с всё что произошло только что.

Врубите setInterval один раз раз и проверяйте что юзер навводил пока скрипт моргал 2 с.

В любой он-лайн гаме это стандартные способы обеспечить реал-тайм рендер.
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2014, 14:30
Интересующийся
Отправить личное сообщение для Elphet Посмотреть профиль Найти все сообщения от Elphet
 
Регистрация: 11.01.2014
Сообщений: 19

Идея конечно интересная. Но получается, если человек останется на странице, то он вызовет N количество раз функцию. N = время/интервал
Сервер грузить не айс =)

Хотя. Появилась идея сделать совмество с clearInterval... подумаю...
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2014, 15:06
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну тогда сравнивайте что было до и после и, если после == до, прекращайте цикл вплоть до нажатия клавиши.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2014, 15:09
Интересующийся
Отправить личное сообщение для Elphet Посмотреть профиль Найти все сообщения от Elphet
 
Регистрация: 11.01.2014
Сообщений: 19

нифига... =)))
Как я и говорил сетИнтервал грузит функцию также.
КлеарИнтервал отрубает повтор, но онКейАп по ходу подрубает её заново =)))

Еще варианты?)

на последнее сообщение:

как сравнить что было до и после? Если массив у меня выводится через .html();?
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2014, 16:29
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Начините уже по-человечески. Не с кодов, а с изложения задачи.
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2014, 22:08
Интересующийся
Отправить личное сообщение для Elphet Посмотреть профиль Найти все сообщения от Elphet
 
Регистрация: 11.01.2014
Сообщений: 19

Сообщение от kostyanet Посмотреть сообщение
Начините уже по-человечески. Не с кодов, а с изложения задачи.
если не понятно - надо спрашивать сразу. А не писать сообщения "давайте уж по-человечески"

Задача еще раз на простом языке:

Ограничить количество вызовов срабатывания функции .onkeyup по времени (после того как человек заполнил инпут прошло 2 сек и выбирается нужный radio, если до 2 сек человек продолжил заполнять, то отсчет 2 сек начинается заново и radio будет выбран как он перестанет заполнять и пройдет 2 сек.) код есть в первом сообщении
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2014, 22:57
Интересующийся
Отправить личное сообщение для Elphet Посмотреть профиль Найти все сообщения от Elphet
 
Регистрация: 11.01.2014
Сообщений: 19

Задача решена с помощью .onclick =)) и добавление невозможности человеку продолжить путь не нажав кнопку))
Ответить с цитированием
  #9 (permalink)  
Старый 23.01.2014, 11:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Elphet
Задача еще раз на простом языке:
Не по теме в сдохлой теме. Вы не знаете человеческого языка. Это бяда многих программистов.

По-человечески описывается например так: хочу чтобы при нажатии кнопки х на экране возникала буква х в том месте, где я укажу с помощью мыши.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размножается обработчик событий demoniqus Общие вопросы Javascript 3 22.10.2012 14:04
не удается убрать обработчик событий. mitiya Общие вопросы Javascript 0 08.09.2012 21:18
Один обработчик для нескольких кнопок! frundik Элементы интерфейса 2 10.07.2012 15:30
Помогите навесить обработчик bublik Общие вопросы Javascript 14 19.09.2011 17:44
Обработчик событий kucaeva Общие вопросы Javascript 2 10.12.2010 16:42