diff options
author | Guru Prasad Srinivasa <gurupras@buffalo.edu> | 2016-01-14 02:51:29 -0500 |
---|---|---|
committer | Guru Prasad Srinivasa <gurupras@buffalo.edu> | 2016-01-14 03:01:51 -0500 |
commit | b5092c338c2b5bde258e6d060812e2cfcde74774 (patch) | |
tree | f4a5f7de6574d7a7a257c4d2193a13c66e53c0c2 /src | |
parent | cce7e9932e7d851ea85c82127bbeff844d8d308a (diff) | |
download | plyr-b5092c338c2b5bde258e6d060812e2cfcde74774.tar.lz plyr-b5092c338c2b5bde258e6d060812e2cfcde74774.tar.xz plyr-b5092c338c2b5bde258e6d060812e2cfcde74774.zip |
Added new configuration option 'handlers'
This option allows developers to attach their custom handlers
before internal plyr's handlers. This should enable developers
to have full control over all the buttons including the ability
to stop event propagation if desired.
Diffstat (limited to 'src')
-rw-r--r-- | src/js/plyr.js | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js index 9a7e78c3..8f9d72a5 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -68,6 +68,18 @@ 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', @@ -2170,34 +2182,43 @@ }); } + function _registerHandler(element, event, userHandler, defaultHandler) { + _on(element, event, function(e) { + if(userHandler) { + userHandler(e); + } + defaultHandler(e); + }); + } + // Play - _on(plyr.buttons.play, 'click', function() { _togglePlay(true); }); + _registerHandler(plyr.buttons.play, 'click', config.handlers.play, function() { _togglePlay(true); }); // Pause - _on(plyr.buttons.pause, 'click', function() { _togglePlay(); }); + _registerHandler(plyr.buttons.pause, 'click', config.handlers.pause, function() { _togglePlay(); }); // Restart - _on(plyr.buttons.restart, 'click', _seek); + _registerHandler(plyr.buttons.restart, 'click', config.handlers.restart, _seek); // Rewind - _on(plyr.buttons.rewind, 'click', _rewind); + _registerHandler(plyr.buttons.rewind, 'click', config.handlers.rewind, _rewind); // Fast forward - _on(plyr.buttons.forward, 'click', _forward); + _registerHandler(plyr.buttons.forward, 'click', config.handlers.forward, _forward); // Seek - _on(plyr.buttons.seek, inputEvent, _seek); + _registerHandler(plyr.buttons.seek, inputEvent, config.handlers.seek, _seek); // Set volume - _on(plyr.volume, inputEvent, function() { - _setVolume(this.value); + _registerHandler(plyr.volume, inputEvent, config.handlers.volume, function() { + _setVolume(plyr.volume.value); }); // Mute - _on(plyr.buttons.mute, 'click', _toggleMute); + _registerHandler(plyr.buttons.mute, 'click', config.handlers.mute, _toggleMute); // Fullscreen - _on(plyr.buttons.fullscreen, 'click', _toggleFullscreen); + _registerHandler(plyr.buttons.fullscreen, 'click', config.handlers.fullscreen, _toggleFullscreen); // Handle user exiting fullscreen by escaping etc if (fullscreen.supportsFullScreen) { |