![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: 2 Всего: 13 |
Народ, привет.
Не подскажете как можно начать выполнять функцию, после того как пользователь ввел какой то текст в input type=’text’ и если длина введенной строки > 3 символов? Под «после того как пользователь ввел какой то текст» я подразумеваю, что он сделал паузу в набирании > 1 секунды, например То есть как сдесь на форуме, вводишь название темы - страница джет какое то время, а потом ищет похожие темы Пробовал так
но результат не такой как я ожидал, да и this.value, как я понял, ещё не содержит введенного символа Это сообщение отредактировал(а) DEER - 25.7.2007, 11:31 -------------------- |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Все верно. Нужно использовать setТimeout
|
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Содержать-то оно его содержит, но вот достучаться до него не так-то просто: this доступен только в обработчике, но в вызываемую из него ф-цию его нужно явно передать (например, создав "замыкание"). И еще, имхо, таймер должен срабатывать лишь тогда, когда действительно целую секунду ничего не нажимали (иначе может выстроится очередь из кучи таймеров, мешающих друг другу). Пример:
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
SelenIT, вопрос задавал не я, но я ставлю плюс, потому что долго не мог найти как передавать инлайном параметры в лямда-функции
![]() |
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
![]() |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Zeroglif, это даже неспортивно как-то...
![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
AKS |
|
||||||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Куда деваться - мы же с ним в "разных весовых категориях" ![]() А по-теме, кстати, вот что:
SelenIT, дополнительные параметры ведь уже давно поддерживают и FF, и Opera (любимая нежно ;) ). Причем эта "фича" уже не новая - точно не знаю, с какого времени, но у меня FF 0.8 (2004 г) "узнает это дело" (короче говоря, "фича" с тех времен, когда я не знал, что такое "хтмл" ;) ). Что я хочу сказать - удобно ведь очень! Передал this и делай в myFunc (где он будет первым аргументом) с этим this все, что хочешь! Чтобы это работало в IE, можно написать доп. расширение. На форуме Xpoint я писал, но оставили без комментариев. Попробую здесь, в здешней компании обсудить вот такое расширение для IE:
В результате - функция myFunc из аттрибута onkeyup:
отработает и в IE... Это сообщение отредактировал(а) AKS - 26.7.2007, 11:11 |
||||||
|
|||||||
DEER |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: 2 Всего: 13 |
Народ всем спасибо.
Я сам сделал, залез выложить а тут такое ) мой вариант
-------------------- |
||||
|
|||||
AKS |
|
|||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
А предложенный мной вариант испытать не желаете? Давайте "рискнем"! ;) Получится как-нибудь так:
Только вместо id этого поля в функцию findCompanies будет передана ссылка непосредственно на это поле (не надо будет писать document.getElementById или типа того). И вспомогательных функций time_kdoun/time_kup не понадобится... |
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
||||
|
||||
AKS |
|
|||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Zeroglif
1. Как быть со строкой первым аргументом? Думаю, что здесь может помочь знание синтаксиса - DOM:window.setTimeout/DOM:window.setInterval. 2. Как быть с синтаксисом setTimeout в IE, не страшно? "Волков бояться - в лес не ходить". ;) Я как-раз для этого и предложил взглянуть на windowXpander, чтобы разобраться и потом уже ничего не бояться. Очень надеюсь на Вас, в частности в случае с apply ("старая гвардия" должна знать, как обойтись без него - ведь как-то обходились до третьего издания, или до второго... когда он там появился). |
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
То есть отказаться от использования строк вообще... или всё-таки проще доделать функцию? IE описал свой синтаксис, мы выходим за его рамки, остаётся только верить в лучшее... ![]() Не про меня. Собрать из массива будущие аргументы в строку, потом вызов через eval... если же предполагать, что число аргументов всё-таки имеет разумный предел (3-5), то проще проверять по switch-case длину массива и вперёд... |
|||
|
||||
AKS |
|
||||||||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Нет, я себе это представил следующим образом. Раз известен синтаксис, который в случае со строкой в первом агрументе не предполагает использования экстра-параметров, то и нечего на них расчитывать. Т.е. все просто: хочешь строку - забудь про доп. параметры.
Ну мне показалось, что расширение довольно "безобидное", т.е. ничего вроде бы не "ломает".
Да неужели? ![]()
У меня сегодня чего-то "замкнуло" в этой, самой, как ее там называют - ее еще почесать можно... тьфу - в голове. ![]() Это сообщение отредактировал(а) AKS - 26.7.2007, 12:17 |
||||||||
|
|||||||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
||||
|
||||
AKS |
|
|||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |