JavaScript: Каким образом отвязать обработчик от события, если использовалось связывание (bind)?

Если я делаю $('селектор').on('click', clickHandler), то отвязка - $('селектор').off('click', clickHandler)
А вот как быть, если $('селектор').on('click', this.method.bind(this))?
Мне остаётся только $('селектор').off('click')
Но я не хочу все обработчики отвязывать.
  • Вопрос задан
  • 4794 просмотра
Решения вопроса 1
RubaXa
@RubaXa
Используйте namespace:
$('селектор').on('click.uniq-namespace', clickHandler);
// ...
$('селектор').off('click.uniq-namespace'),
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@fAra0N25
Надо запоминать обработчик, если не запоминаешь, то стандартными средствами не как, можно только отвязать все обработчики на конкретное событие.
Если через костыль, то в теории можно удалять из массива обработчиков на конкретном DOM элементе, элемент в котором храниться этот обработчик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы