Also remove 'once' event listeners when destroying (they may still be waiting)
This commit is contained in:
parent
53933dff7e
commit
927326f715
2
src/js/controls.js
vendored
2
src/js/controls.js
vendored
@ -1068,7 +1068,7 @@ const controls = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Listen for the transition finishing and restore auto height/width
|
// Listen for the transition finishing and restore auto height/width
|
||||||
once(container, transitionEndEvent, restore);
|
once.call(this, container, transitionEndEvent, restore);
|
||||||
|
|
||||||
// Set dimensions to target
|
// Set dimensions to target
|
||||||
container.style.width = `${size.width}px`;
|
container.style.width = `${size.width}px`;
|
||||||
|
@ -210,7 +210,7 @@ class Listeners {
|
|||||||
toggleListener.call(this.player, document.body, 'click', this.toggleMenu, toggle);
|
toggleListener.call(this.player, document.body, 'click', this.toggleMenu, toggle);
|
||||||
|
|
||||||
// Detect touch by events
|
// Detect touch by events
|
||||||
once(document.body, 'touchstart', this.firstTouch);
|
once.call(this.player, document.body, 'touchstart', this.firstTouch);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Container listeners
|
// Container listeners
|
||||||
|
@ -975,7 +975,7 @@ class Plyr {
|
|||||||
* @param {function} callback - Callback for when event occurs
|
* @param {function} callback - Callback for when event occurs
|
||||||
*/
|
*/
|
||||||
once(event, callback) {
|
once(event, callback) {
|
||||||
once(this.elements.container, event, callback);
|
once.call(this, this.elements.container, event, callback);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Remove event listeners
|
* Remove event listeners
|
||||||
|
@ -27,7 +27,7 @@ const supportsPassiveListeners = (() => {
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
// Toggle event listener
|
// 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
|
// Bail if no element, event, or callback
|
||||||
if (!is.element(element) || is.empty(event) || !is.function(callback)) {
|
if (!is.element(element) || is.empty(event) || !is.function(callback)) {
|
||||||
return;
|
return;
|
||||||
@ -52,7 +52,7 @@ export function toggleListener(element, event, callback, toggle = false, passive
|
|||||||
|
|
||||||
// If a single node is passed, bind the event listener
|
// If a single node is passed, bind the event listener
|
||||||
events.forEach(type => {
|
events.forEach(type => {
|
||||||
if (this && this.eventListeners && toggle && !once) {
|
if (this && this.eventListeners && toggle) {
|
||||||
// Cache event listener
|
// Cache event listener
|
||||||
this.eventListeners.push({ element, type, callback, options });
|
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);
|
callback.apply(this, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleListener(element, events, onceCallback, true, passive, capture, true);
|
toggleListener.call(this, element, events, onceCallback, true, passive, capture);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trigger event
|
// Trigger event
|
||||||
|
Loading…
x
Reference in New Issue
Block a user