Minor tweaks to custom handler stuff

This commit is contained in:
Sam Potts 2016-01-14 19:34:09 +11:00
parent 6110098e97
commit 353d920e25
2 changed files with 47 additions and 46 deletions

2
dist/plyr.js vendored

File diff suppressed because one or more lines are too long

View File

@ -68,18 +68,6 @@
currentTime: '.plyr__time--current', currentTime: '.plyr__time--current',
duration: '.plyr__time--duration' duration: '.plyr__time--duration'
}, },
handlers: {
seek: null,
play: null,
pause: null,
restart: null,
rewind: null,
forward: null,
mute: null,
volume: null,
captions: null,
fullscreen: null
},
classes: { classes: {
videoWrapper: 'plyr__video-wrapper', videoWrapper: 'plyr__video-wrapper',
embedWrapper: 'plyr__video-embed', embedWrapper: 'plyr__video-embed',
@ -104,6 +92,18 @@
}, },
tabFocus: 'tab-focus' tabFocus: 'tab-focus'
}, },
handlers: {
seek: null,
play: null,
pause: null,
restart: null,
rewind: null,
forward: null,
mute: null,
volume: null,
captions: null,
fullscreen: null
},
captions: { captions: {
defaultActive: false defaultActive: false
}, },
@ -512,7 +512,31 @@
return false; return false;
} }
// Toggle event // Bind event
function _on(element, events, callback) {
if (element) {
_toggleHandler(element, events, callback, true);
}
}
// Unbind event
function _off(element, events, callback) {
if (element) {
_toggleHandler(element, events, callback, false);
}
}
// Bind along with custom handler
function _proxyHandler(element, eventName, userHandler, defaultHandler) {
_on(element, eventName, function(event) {
if(userHandler) {
userHandler.apply(element, [event]);
}
defaultHandler.apply(element, [event]);
});
}
// Toggle event handler
function _toggleHandler(element, events, callback, toggle) { function _toggleHandler(element, events, callback, toggle) {
var eventList = events.split(' '); var eventList = events.split(' ');
@ -532,20 +556,6 @@
} }
} }
// Bind event
function _on(element, events, callback) {
if (element) {
_toggleHandler(element, events, callback, true);
}
}
// Unbind event
function _off(element, events, callback) {
if (element) {
_toggleHandler(element, events, callback, false);
}
}
// Trigger event // Trigger event
function _triggerEvent(element, event) { function _triggerEvent(element, event) {
// Bail if no element // Bail if no element
@ -2182,43 +2192,34 @@
}); });
} }
function _registerHandler(element, event, userHandler, defaultHandler) {
_on(element, event, function(e) {
if(userHandler) {
userHandler(e);
}
defaultHandler(e);
});
}
// Play // Play
_registerHandler(plyr.buttons.play, 'click', config.handlers.play, function() { _togglePlay(true); }); _proxyHandler(plyr.buttons.play, 'click', config.handlers.play, function() { _togglePlay(true); });
// Pause // Pause
_registerHandler(plyr.buttons.pause, 'click', config.handlers.pause, function() { _togglePlay(); }); _proxyHandler(plyr.buttons.pause, 'click', config.handlers.pause, function() { _togglePlay(); });
// Restart // Restart
_registerHandler(plyr.buttons.restart, 'click', config.handlers.restart, _seek); _proxyHandler(plyr.buttons.restart, 'click', config.handlers.restart, _seek);
// Rewind // Rewind
_registerHandler(plyr.buttons.rewind, 'click', config.handlers.rewind, _rewind); _proxyHandler(plyr.buttons.rewind, 'click', config.handlers.rewind, _rewind);
// Fast forward // Fast forward
_registerHandler(plyr.buttons.forward, 'click', config.handlers.forward, _forward); _proxyHandler(plyr.buttons.forward, 'click', config.handlers.forward, _forward);
// Seek // Seek
_registerHandler(plyr.buttons.seek, inputEvent, config.handlers.seek, _seek); _proxyHandler(plyr.buttons.seek, inputEvent, config.handlers.seek, _seek);
// Set volume // Set volume
_registerHandler(plyr.volume, inputEvent, config.handlers.volume, function() { _proxyHandler(plyr.volume, inputEvent, config.handlers.volume, function() {
_setVolume(plyr.volume.value); _setVolume(plyr.volume.value);
}); });
// Mute // Mute
_registerHandler(plyr.buttons.mute, 'click', config.handlers.mute, _toggleMute); _proxyHandler(plyr.buttons.mute, 'click', config.handlers.mute, _toggleMute);
// Fullscreen // Fullscreen
_registerHandler(plyr.buttons.fullscreen, 'click', config.handlers.fullscreen, _toggleFullscreen); _proxyHandler(plyr.buttons.fullscreen, 'click', config.handlers.fullscreen, _toggleFullscreen);
// Handle user exiting fullscreen by escaping etc // Handle user exiting fullscreen by escaping etc
if (fullscreen.supportsFullScreen) { if (fullscreen.supportsFullScreen) {