Отменить прослушиватели событий из элемента

Есть ли способ отменить / удалить всех прослушивателей событий из элемента? Я не устанавливал эти слушатели самостоятельно, поэтому у меня нет StreamSubscription, который я мог бы использовать. Мне нужно как-то их достать.

Итак, какая-то библиотека сделала это:

querySelector('body').onMouseUp.listen(handler);

И я хочу снова удалить этот (и все другие) обработчики.


person Michael    schedule 19.06.2018    source источник
comment
Я сомневаюсь, что это возможно. Возможно, вы можете добавить onMouseUp обработчик события в дочерний элемент и вызвать stopPropagation и / или stopImmediatePropagation для этого события. Я никогда этим не пользовался и точно не знаю, как это работает, но, возможно, стоит попробовать.   -  person Günter Zöchbauer    schedule 20.06.2018
comment
Я уже пробовал preventDefault (), но это не помогло. Попробую остановить * Propagation (). Похоже, это проблема и в Javascript. В инструментах Chrome Dev есть функция getEventListeners (), но она недоступна в контексте пользователя.   -  person Michael    schedule 20.06.2018
comment
stopPropagation () для дочернего элемента работает. Не идеально, но нормально. Спасибо.   -  person Michael    schedule 21.06.2018


Ответы (1)


Вы можете добавить обработчик события onMouseUp в дочерний элемент и вызвать stopPropagation и / или stopImmediatePropagation для события, чтобы предотвратить распространение события.

person Günter Zöchbauer    schedule 21.06.2018