diff options
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r-- | src/js/plyr.js | 60 |
1 files changed, 16 insertions, 44 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js index f2786a84..4af5ffa4 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -3969,18 +3969,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(); } } @@ -3989,19 +3982,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; @@ -4193,32 +4173,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)) { @@ -4367,7 +4340,6 @@ function(event) { player.toggleControls(event); }, - true, true ); } |