aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plyr.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r--src/js/plyr.js60
1 files changed, 16 insertions, 44 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js
index 4dbbd499..d5d9f11b 100644
--- a/src/js/plyr.js
+++ b/src/js/plyr.js
@@ -3974,18 +3974,11 @@
var play = player.togglePlay();
// Determine which buttons
- var trigger = player.elements.buttons[play ? 'play' : 'pause'];
var target = player.elements.buttons[play ? 'pause' : 'play'];
// Transfer focus
- if (target && trigger) {
- if (utils.hasClass(trigger, player.config.classNames.tabFocus)) {
- setTimeout(function() {
- target.focus();
- utils.toggleClass(trigger, player.config.classNames.tabFocus, false);
- utils.toggleClass(target, player.config.classNames.tabFocus, true);
- }, 0);
- }
+ if (target) {
+ target.focus();
}
}
@@ -3994,19 +3987,6 @@
return event.keyCode ? event.keyCode : event.which;
}
- // Detect tab focus
- function checkTabFocus(focused) {
- utils.toggleClass(
- getElements('.' + player.config.classNames.tabFocus),
- player.config.classNames.tabFocus,
- false
- );
-
- if (player.elements.container.contains(focused)) {
- utils.toggleClass(focused, player.config.classNames.tabFocus, true);
- }
- }
-
// Keyboard shortcuts
if (player.config.keyboard.focused) {
var last = null;
@@ -4198,32 +4178,25 @@
}
}
- // Focus/tab management
- utils.on(window, 'keyup', function(event) {
- var code = getKeyCode(event);
- var focused = utils.getFocusElement();
+ // Detect tab focus
+ // Remove class on blur/focusout
+ utils.on(player.elements.container, 'focusout', function(event) {
+ utils.toggleClass(event.target, player.config.classNames.tabFocus, false);
+ });
- if (code === 9) {
- checkTabFocus(focused);
+ // Add classname to tabbed elements
+ utils.on(player.elements.container, 'keydown', function(event) {
+ if (event.keyCode !== 9) {
+ return;
}
- });
- utils.on(document.body, 'click', function() {
- utils.toggleClass(
- getElement('.' + player.config.classNames.tabFocus),
- player.config.classNames.tabFocus,
- false
- );
+ // Delay the adding of classname until the focus has changed
+ // This event fires before the focusin event
+ window.setTimeout(function () {
+ utils.toggleClass(utils.getFocusElement(), player.config.classNames.tabFocus, true);
+ }, 0);
});
- for (var button in player.elements.buttons) {
- utils.on(player.elements.buttons[button], 'blur', onBlur);
- }
-
- function onBlur(event) {
- utils.toggleClass(event.target, player.config.classNames.tabFocus, false);
- }
-
// Trigger custom and default handlers
var handlerProxy = function(event, customHandler, defaultHandler) {
if (utils.is.function(customHandler)) {
@@ -4372,7 +4345,6 @@
function(event) {
player.toggleControls(event);
},
- true,
true
);
}