]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Add cleanup of parent links for accordion menus and drilldown
authorKevin Ball <kmball11@gmail.com>
Tue, 5 Sep 2017 19:03:52 +0000 (12:03 -0700)
committerKevin Ball <kmball11@gmail.com>
Tue, 5 Sep 2017 19:03:52 +0000 (12:03 -0700)
js/foundation.accordionMenu.js
js/foundation.drilldown.js
test/visual/responsive-menu/accordion-dropdown.html

index 1a3ed55bc77cc13f6264278dbf5d741f1fd7ff40..556c95c6b9bb7d1242addbda4d14e717ab0e5551 100644 (file)
@@ -68,7 +68,7 @@ class AccordionMenu extends Plugin {
 
       if(_this.options.parentLink) {
         let $anchor = $elem.children('a');
-        $anchor.clone().prependTo($sub).wrap('<li class="is-submenu-parent-item is-submenu-item is-accordian-submenu-item"></li>');
+        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-accordian-submenu-item"></li>');
       }
 
       if(_this.options.submenuToggle) {
@@ -290,6 +290,7 @@ class AccordionMenu extends Plugin {
   _destroy() {
     this.$element.find('[data-submenu]').slideDown(0).css('display', '');
     this.$element.find('a').off('click.zf.accordionMenu');
+    this.$element.find('[data-is-parent-link]').detach();
 
     if(this.options.submenuToggle) {
       this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');
index 80a3dbf6e8442ab1e3fc4f6c47f065934e2a8c9e..ba7c167c99f5bd59fc0978f9f1afed8f2fb9bbec 100644 (file)
@@ -85,7 +85,7 @@ class Drilldown extends Plugin {
       var $link = $(this);
       var $sub = $link.parent();
       if(_this.options.parentLink){
-        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menuitem"></li>');
+        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menuitem"></li>');
       }
       $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);
       $link.children('[data-submenu]')
@@ -424,6 +424,7 @@ class Drilldown extends Plugin {
       $(this).off('.zf.drilldown');
     });
 
+    this.$element.find('[data-is-parent-link]').detach();
     this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');
 
     this.$element.find('a').each(function(){
index a0f3f86b4c184bd6c85fbdfcc785af73134f2294..f279101f682b444ccb77228f204eef24dde5c9a3 100644 (file)
           </div>
 
       </div>
+      <div class="large-12 cell">
+        <h2>Responsive Menu - Accordion and Drilldown both with parent links:</h2>
+        <div id="main-nav">
+          <ul class="menu vertical drilldown" data-responsive-menu="drilldown medium-accordion" data-parent-link="true">
+            <li>
+              <a href="http://www.github.com">Item 1 (external)</a>
+              <ul class="menu vertical">
+                <li><a href="google.com">Item 1A (external)</a></li>
+                <li>
+                  <a href="#">Item 1B</a>
+                </li>
+              </ul>
+            </li>
+            <li>
+              <a href="#">Item 2</a>
+              <ul class="menu vertical">
+                <li><a href="#">Item 2A</a></li>
+                <li>
+                  <a href="#">Item 2B</a>
+                  <ul class="menu vertical">
+                  <li><a href="google.com">Item 2BA (external)</a></li>
+                  <li>
+                    <a href="#">Item 2BB</a>
+                  </li>
+                </ul>
+                </li>
+              </ul>
+            </li>
+          </ul>
+        </div>
+      </div>
     </div>
 
     <script src="../assets/js/vendor.js"></script>