aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/utils/events.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2018-07-15 19:23:28 +1000
committerSam Potts <sam@potts.es>2018-07-15 19:23:28 +1000
commite63ad7c74bd763043344fd2bd568a64e7ea18622 (patch)
tree2367ed9ff7d5d14fd6a5d207550a4a3bdc5d7502 /src/js/utils/events.js
parentead660139489d3b0cf082d97117f735929adaf49 (diff)
downloadplyr-e63ad7c74bd763043344fd2bd568a64e7ea18622.tar.lz
plyr-e63ad7c74bd763043344fd2bd568a64e7ea18622.tar.xz
plyr-e63ad7c74bd763043344fd2bd568a64e7ea18622.zip
Keyboard and focus improvements
Diffstat (limited to 'src/js/utils/events.js')
-rw-r--r--src/js/utils/events.js81
1 files changed, 71 insertions, 10 deletions
diff --git a/src/js/utils/events.js b/src/js/utils/events.js
index 9f734f04..9820fcae 100644
--- a/src/js/utils/events.js
+++ b/src/js/utils/events.js
@@ -27,9 +27,21 @@ const supportsPassiveListeners = (() => {
})();
// Toggle event listener
-export function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {
+export function toggleListener(
+ element,
+ event,
+ callback,
+ toggle = false,
+ passive = true,
+ capture = false,
+) {
// Bail if no element, event, or callback
- if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {
+ if (
+ !element ||
+ !('addEventListener' in element) ||
+ is.empty(event) ||
+ !is.function(callback)
+ ) {
return;
}
@@ -57,28 +69,74 @@ export function toggleListener(element, event, callback, toggle = false, passive
this.eventListeners.push({ element, type, callback, options });
}
- element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);
+ element[toggle ? 'addEventListener' : 'removeEventListener'](
+ type,
+ callback,
+ options,
+ );
});
}
// Bind event handler
-export function on(element, events = '', callback, passive = true, capture = false) {
- toggleListener.call(this, element, events, callback, true, passive, capture);
+export function on(
+ element,
+ events = '',
+ callback,
+ passive = true,
+ capture = false,
+) {
+ toggleListener.call(
+ this,
+ element,
+ events,
+ callback,
+ true,
+ passive,
+ capture,
+ );
}
// Unbind event handler
-export function off(element, events = '', callback, passive = true, capture = false) {
- toggleListener.call(this, element, events, callback, false, passive, capture);
+export function off(
+ element,
+ events = '',
+ callback,
+ passive = true,
+ capture = false,
+) {
+ toggleListener.call(
+ this,
+ element,
+ events,
+ callback,
+ false,
+ passive,
+ capture,
+ );
}
// Bind once-only event handler
-export function once(element, events = '', callback, passive = true, capture = false) {
+export function once(
+ element,
+ events = '',
+ callback,
+ passive = true,
+ capture = false,
+) {
function onceCallback(...args) {
off(element, events, onceCallback, passive, capture);
callback.apply(this, args);
}
- toggleListener.call(this, element, events, onceCallback, true, passive, capture);
+ toggleListener.call(
+ this,
+ element,
+ events,
+ onceCallback,
+ true,
+ passive,
+ capture,
+ );
}
// Trigger event
@@ -115,6 +173,9 @@ export function unbindListeners() {
// Run method when / if player is ready
export function ready() {
return new Promise(
- resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),
+ resolve =>
+ this.ready
+ ? setTimeout(resolve, 0)
+ : on.call(this, this.elements.container, 'ready', resolve),
).then(() => {});
}