Also remove 'once' event listeners when destroying (they may still be waiting)
This commit is contained in:
		@ -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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user