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',
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: {
videoWrapper: 'plyr__video-wrapper',
embedWrapper: 'plyr__video-embed',
@ -104,6 +92,18 @@
},
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: {
defaultActive: false
},
@ -512,7 +512,31 @@
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) {
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
function _triggerEvent(element, event) {
// 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
_registerHandler(plyr.buttons.play, 'click', config.handlers.play, function() { _togglePlay(true); });
_proxyHandler(plyr.buttons.play, 'click', config.handlers.play, function() { _togglePlay(true); });
// Pause
_registerHandler(plyr.buttons.pause, 'click', config.handlers.pause, function() { _togglePlay(); });
_proxyHandler(plyr.buttons.pause, 'click', config.handlers.pause, function() { _togglePlay(); });
// Restart
_registerHandler(plyr.buttons.restart, 'click', config.handlers.restart, _seek);
_proxyHandler(plyr.buttons.restart, 'click', config.handlers.restart, _seek);
// Rewind
_registerHandler(plyr.buttons.rewind, 'click', config.handlers.rewind, _rewind);
_proxyHandler(plyr.buttons.rewind, 'click', config.handlers.rewind, _rewind);
// Fast forward
_registerHandler(plyr.buttons.forward, 'click', config.handlers.forward, _forward);
_proxyHandler(plyr.buttons.forward, 'click', config.handlers.forward, _forward);
// Seek
_registerHandler(plyr.buttons.seek, inputEvent, config.handlers.seek, _seek);
_proxyHandler(plyr.buttons.seek, inputEvent, config.handlers.seek, _seek);
// Set volume
_registerHandler(plyr.volume, inputEvent, config.handlers.volume, function() {
_proxyHandler(plyr.volume, inputEvent, config.handlers.volume, function() {
_setVolume(plyr.volume.value);
});
// Mute
_registerHandler(plyr.buttons.mute, 'click', config.handlers.mute, _toggleMute);
_proxyHandler(plyr.buttons.mute, 'click', config.handlers.mute, _toggleMute);
// 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
if (fullscreen.supportsFullScreen) {