Removed support for multiple elements in toggleListener
This commit is contained in:
parent
fb48b330cc
commit
f15c1344b0
@ -453,7 +453,9 @@ class Listeners {
|
||||
};
|
||||
|
||||
// Play/pause toggle
|
||||
bind(this.player.elements.buttons.play, 'click', this.player.togglePlay, 'play');
|
||||
Array.from(this.player.elements.buttons.play).forEach(button => {
|
||||
bind(button, 'click', this.player.togglePlay, 'play');
|
||||
});
|
||||
|
||||
// Pause
|
||||
bind(this.player.elements.buttons.restart, 'click', this.player.restart, 'restart');
|
||||
@ -634,8 +636,8 @@ class Listeners {
|
||||
|
||||
// Polyfill for lower fill in <input type="range"> for webkit
|
||||
if (browser.isWebkit) {
|
||||
bind(getElements.call(this.player, 'input[type="range"]'), 'input', event => {
|
||||
controls.updateRangeFill.call(this.player, event.target);
|
||||
Array.from(getElements.call(this.player, 'input[type="range"]')).forEach(element => {
|
||||
bind(element, 'input', event => controls.updateRangeFill.call(this.player, event.target));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -27,21 +27,9 @@ const supportsPassiveListeners = (() => {
|
||||
})();
|
||||
|
||||
// Toggle event listener
|
||||
export function toggleListener(elements, event, callback, toggle = false, passive = true, capture = false, once = false) {
|
||||
// Bail if no elements, event, or callback
|
||||
if (is.empty(elements) || is.empty(event) || !is.function(callback)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If a nodelist is passed, call itself on each node
|
||||
if (is.nodeList(elements) || is.array(elements)) {
|
||||
// Create listener for each node
|
||||
Array.from(elements).forEach(element => {
|
||||
if (element instanceof Node) {
|
||||
toggleListener.call(null, element, event, callback, toggle, passive, capture);
|
||||
}
|
||||
});
|
||||
|
||||
export function toggleListener(element, event, callback, toggle = false, passive = true, capture = false, once = false) {
|
||||
// Bail if no element, event, or callback
|
||||
if (!is.element(element) || is.empty(event) || !is.function(callback)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -66,10 +54,10 @@ export function toggleListener(elements, event, callback, toggle = false, passiv
|
||||
events.forEach(type => {
|
||||
if (this && this.eventListeners && toggle && !once) {
|
||||
// Cache event listener
|
||||
this.eventListeners.push({ elements, type, callback, options });
|
||||
this.eventListeners.push({ element, type, callback, options });
|
||||
}
|
||||
|
||||
elements[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);
|
||||
element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);
|
||||
});
|
||||
}
|
||||
|
||||
@ -116,8 +104,8 @@ export function triggerEvent(element, type = '', bubbles = false, detail = {}) {
|
||||
export function unbindListeners() {
|
||||
if (this && this.eventListeners) {
|
||||
this.eventListeners.forEach(item => {
|
||||
const { elements, type, callback, options } = item;
|
||||
elements.removeEventListener(type, callback, options);
|
||||
const { element, type, callback, options } = item;
|
||||
element.removeEventListener(type, callback, options);
|
||||
});
|
||||
|
||||
this.eventListeners = [];
|
||||
|
Loading…
x
Reference in New Issue
Block a user