Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.08.2019, 20:37
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 413

Удалить слушатель с bind
Как правильно удалить слушатель с bind ?
Вот установленный слушатель:
btnSave.addEventListener('click', this.onSave.bind( this, btnSave, btnCancel ));

Достаточно ли сделать так:
btnSave.removeEventListener('click', this.onSave);

или нужно прописывать bind со всеми параметрами?

И если можно, пара вопросов по слушателям и бинду:
1. Как я понял, в bind первым обязательным параметром является контекст. А если мне контекст не нужен, какой параметр передавать: null, NULL или false?
2. Есть ли способ проверить что слушатель удалён? В консоле браузера вижу вкладку Event Listener, но не пойму там ничего. Там нужно высматривать слушатели? Они будут там в "лайф режиме" добавляться-удаляться?
Ответить с цитированием
  #2 (permalink)  
Старый 25.08.2019, 21:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,830

Сообщение от MC-XOBAHCK
Достаточно ли сделать так:
создайте переменную с нужной функцией и потом удаляйте или добавляйте эту переменную.
Ответить с цитированием
  #3 (permalink)  
Старый 25.08.2019, 21:16
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 413

Сообщение от рони Посмотреть сообщение
создайте переменную с нужной функцией и потом удаляйте или добавляйте эту переменную.
Я понял. Это сделаю - понимаю как.

А по контексту не подскажите какое значение передать если он не нужен в бинде? null ???
там где у меня bind(this, ....)
Что вместо this указать?
Ответить с цитированием
  #4 (permalink)  
Старый 25.08.2019, 21:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,830

MC-XOBAHCK,
если this не нужен то может как-то так?
() => onSave(btnSave, btnCancel)
Ответить с цитированием
  #5 (permalink)  
Старый 25.08.2019, 21:38
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 413

А, я понял. Точно, если я делаю переменную функцией, то бинд не нужен:
let x = function() {
    this.onSave(btnSave, btnCancel);
}
btnSave.addEventListener('click', x);

Изначально bind мне нужен был чтобы передать параметры в вызываемую слушателем функцию (метод объекта).
Спасибо за помощь!
Ответить с цитированием
  #6 (permalink)  
Старый 26.08.2019, 13:54
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,171

Сообщение от MC-XOBAHCK
В консоле браузера вижу вкладку Event Listener, но не пойму там ничего. Там нужно высматривать слушатели? Они будут там в "лайф режиме" добавляться-удаляться?
Да, всё можно. Там показываются в таком порядке события/элементы/слушатели, в зависимости от того какой элемент выбран в окне Elements, если стоит галочка на Ancestors, то показываются также другие выше по иерархии до window, иконка Refresh обновляет состояние.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить слушатель событий? spo Общие вопросы Javascript 9 22.12.2016 02:08
подскажите как удалить div alex2012 jQuery 5 13.10.2016 17:43
Помогите упростить код открывания панелей Anrew Общие вопросы Javascript 18 14.11.2015 21:15
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 17:42
Не могу выбрать и удалить клонируемые элементы AlexPrm jQuery 6 30.05.2010 14:58