jQuery: отключить делегированные события от исходного объекта с помощью пространства имен

#jquery #event-delegation #jquery-events

#jquery #событие-делегирование #jquery-события

Вопрос:

Я прикрепил делегированный обработчик событий таким образом:

 $('#static-div').on('click.myNamespace', '.attach-to-this', someFunction);
  

Как мне затем, позже, отменить это действие и удалить все делегированные события в этом пространстве имен? static-div Элемент всегда находится на странице, и изменяется только его содержимое.

Я пробовал следующее, но ни одно из них не сработало:

 $('#static-div').off('myNamespace');
$('#static-div').off('myNamespace', '**');
  

Я чувствую, что это должно быть проще, чем есть….

Спасибо.

Комментарии:

1. Вы пробовали $('#static-div').off('.myNamespace'); ?

2. Возможно, это моя проблема — я не ставил точку перед пространством имен… Я попробую.

3. Это было оно! Да, я действительно думал, что мне не нужна точка. Если вы хотите дать официальный ответ на этот вопрос, я приму его.

Ответ №1:

Вам нужно указать период при удалении событий из пространства имен.

Например, $('#static-div').off('.myNamespace');

Смотрите документы для получения дополнительной информации: http://api.jquery.com/off /