Клуб API Карт

Не отключается events

Пост в архиве.

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

Когда я зажимаю клавишу, мне необходимо иметь возможность сменить группу, для чего написана функция setGroup().

Но в тот момент, когда я отпускаю клавишу, этот event должен сниматься с группы (коллекции).

 

$(document).on('keydown', function(e) {
switch (e.keyCode) {
case 68: // D Designate
key_state = 'D';
$("#mapTablo").text('Назначить группу');
collectionAll.events.add('click', setGroup);
break;
}
}).on('keyup', function(e) {
switch (e.keyCode) {
case 68: // D Designate
key_state = '';
$("#mapTablo").text('');
collectionAll.events.remove('click', setGroup);
break;
}
});

 

Но не отключается. После того, как отпускаю клавишу, событие за коллекцией clollectionAll все равно остается. Весь мозг уже сломал. Как такое может быть?

 

2 комментария
при keydown событие пробрасывается очень много раз (если зажать), соответственно и слушателей вешается столько же.
Заведите флаг, чтобы понимать, что событие уже повешено и ничего делать не нужно.
Андрей Грэй
28 января 2016, 02:49

Ага, спасибо, кажется разобрался.