Also remove 'once' event listeners when destroying (they may still be waiting)

This commit is contained in:
Albin Larsson
2018-06-12 19:43:08 +02:00
parent 53933dff7e
commit 927326f715
4 changed files with 6 additions and 6 deletions

View File

@ -27,7 +27,7 @@ const supportsPassiveListeners = (() => {
})();
// Toggle event listener
export function toggleListener(element, event, callback, toggle = false, passive = true, capture = false, once = false) {
export function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {
// Bail if no element, event, or callback
if (!is.element(element) || is.empty(event) || !is.function(callback)) {
return;
@ -52,7 +52,7 @@ export function toggleListener(element, event, callback, toggle = false, passive
// If a single node is passed, bind the event listener
events.forEach(type => {
if (this && this.eventListeners && toggle && !once) {
if (this && this.eventListeners && toggle) {
// Cache event listener
this.eventListeners.push({ element, type, callback, options });
}
@ -78,7 +78,7 @@ export function once(element, events = '', callback, passive = true, capture = f
callback.apply(this, args);
}
toggleListener(element, events, onceCallback, true, passive, capture, true);
toggleListener.call(this, element, events, onceCallback, true, passive, capture);
}
// Trigger event