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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как временно отменить обработку события? 
V
    Опции темы
maxipub
Дата 5.8.2014, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



Добрый день!

Может быть, вопрос тривиален, мне JavaScript по жизни "инопланетная технология" smile

Код
$(document).keydown( function(e) {
    var keyCode = e.keyCode || e.which,
        arrow = {
            up : 38,
            down : 40
        };

        switch (keyCode) {
        case arrow.up:
            up_func();
            break;
        case arrow.down:
            down_func();
            break;
    }
} );


Как можно на время (например, по клику на button) отменить обработку данного события, а потом (по клику на другой button) - опять его возобновить?

В идеале - действительно временная блокировка, а не отмена. Но для начала было бы неплохо хоть как-то. Пробовал перезаписать объявленный обработчик так (по клику на button):

Код
$( document ).keydown( function(e) { } );


Что-то без результата.

Заранее спасибо! smile 
PM MAIL   Вверх
baldina
Дата 5.8.2014, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



Код

$(document).unbind('keydown');

PM MAIL   Вверх
maxipub
Дата 5.8.2014, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



О чем я и говорил! smile 

baldina, а заново включить так же просто можно? Или надо переделать обработчик под функцию и вешать его через jquery bind?
PM MAIL   Вверх
baldina
Дата 5.8.2014, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



можно так же. только будьте аккуратны: включение каждый раз добавляет новый обработчик: попробуйте тут нажать кнопку start несколько раз
PM MAIL   Вверх
maxipub
Дата 5.8.2014, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



Ага, весело... smile

baldina, я так понял, вообще вместо bind лучше использовать непосредственно on?

Еще раз большое спасибо за помощь, узнал много нового.

Задачу решил добавлением условия с глобальной переменной ( ? так можно вообще говорить в JavaScript - не знаю smile)  в обработчике событий из первого поста. Там скрипт не мой, так что решил не рубить все keydown, кто знает что там может висеть, потом и не подыму их. А с условием вышло просто и гибко, как-то сразу не додумался, вечер... smile 
PM MAIL   Вверх
baldina
Дата 5.8.2014, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



Цитата(maxipub @  5.8.2014,  18:00 Найти цитируемый пост)
вместо bind лучше использовать непосредственно on?

да: он заменяет несколько разных функций, имеет единственную форму вызова и сопутствующий метод .off - с ним код должен быть проще и понятней. 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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