Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отменить одно событие, назначить другое 
V
    Опции темы
Samotnik
Дата 29.4.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



значит так
делаю выпадающий список как в поисковике в гугле  smile 
на событие нажатия клавиши addEvent("keyup", function(event) - летит на сервер нажатая буква и возвращает результат и выводит это все дело в окошко под строкой поиска (как в гугле) - это все работает хорошо
проблема в том, что после того, как заполнилось окошко результатом - нужно приделать обработчик события нажатия стрелочек клавиатуры (как у гугла вверх/вниз на клаве нажимаешь и проходишь по всем пунктам результата поиска)
я это делаю вот так addEvent('keydown', function(event)
 и вот тут возникает  проблема
-   посылается  опять запрос, потому что срабатывает первый обработчик события. Вопрос -  как это избежать ? 

PM MAIL   Вверх
ksnk
Дата 29.4.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Откуда взялась функция addEvent ? Может там же лежит и функция removeEvent?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Samotnik
Дата 29.4.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(ksnk @  29.4.2009,  18:26 Найти цитируемый пост)
Откуда взялась функция addEvent ? Может там же лежит и функция removeEvent? 

фреймворк  smile 
да, там есть такая. я уже пробывал 
только, почему то не срабатывает, может не правильно делаю ...
Код

if (event.key == 'up' || event.key == 'down') {    
        _this.currentLetters.removeEvent("keyup",function(){
        alert('stop');
        });    
    }

алерта нету  smile    Может ошибка в логике у меня ?   smile 
PM MAIL   Вверх
ksnk
Дата 29.4.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



ремувать нужно ИМЕННО ту функцию, которая установилась addEvent'ом. Сохранить ее в переменной, например.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Samotnik
Дата 29.4.2009, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



ksnk, окей, а когда именно нужно ремувить ?

Добавлено через 1 минуту и 14 секунд
я вот так сделал,  арет есть в стой функции, но все равно запросы отправляются, хотя не должны
Код

this.currentLetters.addEvent("keyup", this.myAddRemoveEvent);    
this.currentLetters.addEvent('keydown', function(event) {
_this.currentLetters.removeEvent("keyup", this.myAddRemoveEvent);    
});

PM MAIL   Вверх
Samotnik
Дата 29.4.2009, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



 smile   smile  smile  smile 
НЕ понимаю, где ремув нужно ставить, в каком месте.  Везде ставлю, нигде не работает  smile  smile  smile 
PM MAIL   Вверх
ksnk
Дата 29.4.2009, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Ну, тогда минимальный пример, воспроизводящий ситуацию, или ссылку на сайт.. 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Samotnik
Дата 29.4.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Код

this.myAddRemoveEvent = function ()
{
//что-то
}

this.currentLetters.addEvent("keyup", this.myAddRemoveEvent);    
this.currentLetters.addEvent('keydown', function(event)
    {    
     switch(event.key) 
     {
        case 'up':    
             
        break;
                       
            case 'down':    
      
            break;
     }
    });


КУда  вставить  this.currentLetters.removeEvent("keyup", this.myAddRemoveEvent);  ????

PM MAIL   Вверх
Soah
Дата 29.4.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 8
Всего: 54



Цитата(Samotnik @  29.4.2009,  18:29 Найти цитируемый пост)

Код

if (event.key == 'up' || event.key == 'down')


Samotnik, откуда?
Код

event = event || window.event;
    ccode = event.keyCode ? event.keyCode : event.which ? event.which : null;

какие числа для up и down не помню, посмотри сам

Цитата(Samotnik @  29.4.2009,  18:22 Найти цитируемый пост)
посылается  опять запрос, потому что срабатывает первый обработчик события. Вопрос -  как это избежать ? 

а если написать что, если нажали up или down то запрос не посылать?
PM MAIL   Вверх
Samotnik
Дата 30.4.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(Soah @  29.4.2009,  19:58 Найти цитируемый пост)
Samotnik, откуда?

что откуда ?
Цитата(Soah @  29.4.2009,  19:58 Найти цитируемый пост)
какие числа для up и down не помню, посмотри сам

какая разница, на что я проверяю, ведь главное что условие срабатывает, а вот ремув не срабатывает 
Цитата(Soah @  29.4.2009,  19:58 Найти цитируемый пост)
а если написать что, если нажали up или down то запрос не посылать? 

ДА, если ап или доун, то запрос не посылать, а просто пройтись по результатам. 
Вот как тут  http://www.google.com 
там же когда стрелочками передвигаешся - то запросы ведь не посылаются  smile 
PM MAIL   Вверх
Samotnik
Дата 30.4.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



се
разобрался
мой затуп, всем спасибо !  smile 
так и знал, что вчера не стоило больше 11 часов работать, сегодня за 20 минут сообразил
PM MAIL   Вверх
Soah
Дата 30.4.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 8
Всего: 54



Цитата(Samotnik @  30.4.2009,  08:33 Найти цитируемый пост)
что откуда ?

откуда у event свойство key?
но если не важно...


Цитата(Samotnik @  30.4.2009,  09:01 Найти цитируемый пост)
се
разобрался

если не затруднит, напиши как решил smile 
может кому-то пригодится
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.