diff options
author | Sam Potts <sam@potts.es> | 2018-06-13 10:52:17 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-13 10:52:17 +1000 |
commit | 5c08363400c82f89a7da15c60af45ec3d608079c (patch) | |
tree | e64b238480bdd7b0a11e34f2db91c11b27efe761 /src/js/utils/events.js | |
parent | 5dddf8b0ec5d0c3ad486eef04ec27d3c089d18b3 (diff) | |
parent | 927326f715132d56c79de70e9b871594514caa2f (diff) | |
download | plyr-5c08363400c82f89a7da15c60af45ec3d608079c.tar.lz plyr-5c08363400c82f89a7da15c60af45ec3d608079c.tar.xz plyr-5c08363400c82f89a7da15c60af45ec3d608079c.zip |
Merge pull request #1030 from friday/event-improvements
Minor event changes
Diffstat (limited to 'src/js/utils/events.js')
-rw-r--r-- | src/js/utils/events.js | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/src/js/utils/events.js b/src/js/utils/events.js index a8e05f54..d6ffc043 100644 --- a/src/js/utils/events.js +++ b/src/js/utils/events.js @@ -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 elemetns, 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) { + // Bail if no element, event, or callback + if (!is.element(element) || is.empty(event) || !is.function(callback)) { return; } @@ -64,12 +52,12 @@ export function toggleListener(elements, event, callback, toggle = false, passiv // 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({ 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); }); } @@ -90,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 @@ -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 = []; |