jQuery - .off () не может удалить прослушиватель событий - PullRequest
0 голосов
/ 17 января 2020

У меня есть функция:

const foo = () => {
    // blablabla
};

Сначала я добавляю прослушиватель событий:

$('body').on('click', foo);

Затем я пытаюсь удалить его, но не получается:

$('body').off('click', foo);

Его можно удалить только со всеми другими событиями:

$('body').off('click');

Обновление:

Я пытаюсь добавить addEventListener & removeEventListener, по-прежнему не работает.


Более подробно:

condition ? $('body').on('click', foo) : $('body').off('click', foo);

Имеет ли значение условие if?

1 Ответ

1 голос
/ 17 января 2020

Если вы хотите удалить обработчик события, тогда следует использовать event.namespace .

Кроме того, прикрепите обработчик событий к document вместо body

const foo = () => {
  console.log('blablabla foo')
};
const foo2 = () => {
  console.log('blablabla foo2')
};


$(document).on('click', foo);
$(document).on('click.foo2', foo2);
$(document).off('click.foo2', foo2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...