]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Fix Drilldown behavior with parent link when using keyboard.
authorMarius Olbertz <marius.olbertz@gmail.com>
Sat, 30 Dec 2017 22:04:23 +0000 (23:04 +0100)
committerMarius Olbertz <marius.olbertz@gmail.com>
Sat, 30 Dec 2017 22:04:23 +0000 (23:04 +0100)
Fixes #10803

js/foundation.drilldown.js

index 003ef3d8048090f617a1155e4096c3f773f69f83..5f7d2ca56fcc5ed53792dd8edd282be1f08c84bb 100644 (file)
@@ -226,7 +226,7 @@ class Drilldown extends Plugin {
           if ($element.is(_this.$submenuAnchors)) {
             _this._show($element.parent('li'));
             $element.parent('li').one(transitionend($element), function(){
-              $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
+              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();
             });
             return true;
           }
@@ -258,7 +258,9 @@ class Drilldown extends Plugin {
           }
         },
         open: function() {
-          if (!$element.is(_this.$menuItems)) { // not menu item means back button
+          if (_this.options.parentLink && $element.attr('href')) { // Link with href
+            return false;
+          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button
             _this._hide($element.parent('li').parent('ul'));
             $element.parent('li').parent('ul').one(transitionend($element), function(){
               setTimeout(function() {
@@ -266,10 +268,10 @@ class Drilldown extends Plugin {
               }, 1);
             });
             return true;
-          } else if ($element.is(_this.$submenuAnchors)) {
+          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item
             _this._show($element.parent('li'));
             $element.parent('li').one(transitionend($element), function(){
-              $element.parent('li').find('ul li a').filter(_this.$menuItems).first().focus();
+              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();
             });
             return true;
           }