]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
added extra searches for [data-tabs-target] when termining target tab link
authorMatt Scheurich <matt@lvl99.com>
Tue, 5 Sep 2017 10:35:42 +0000 (12:35 +0200)
committerMatt Scheurich <matt@lvl99.com>
Tue, 5 Sep 2017 10:35:42 +0000 (12:35 +0200)
js/foundation.tabs.js

index c6380d2b7d62be34aa08c6c7904bf55c807daf09..5e5ab20905f7e1cf0d4707a19f658b2ac658d82c 100644 (file)
@@ -99,7 +99,8 @@ class Tabs extends Plugin {
       var anchor = window.location.hash;
       //need a hash and a relevant anchor in this tabset
       if(anchor.length) {
-        var $link = this.$element.find('[href$="'+anchor+'"]');
+        var anchorNoHash = (anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor);
+        var $link = this.$element.find(`[href$="${anchor}"],[data-tabs-target="${anchorNoHash}"]`).first();
         if ($link.length) {
           this.selectTab($(anchor), true);
 
@@ -318,7 +319,7 @@ class Tabs extends Plugin {
    * @function
    */
   selectTab(elem, historyHandled) {
-    var idStr;
+    var idStr, hashIdStr;
 
     if (typeof elem === 'object') {
       idStr = elem[0].id;
@@ -327,10 +328,13 @@ class Tabs extends Plugin {
     }
 
     if (idStr.indexOf('#') < 0) {
-      idStr = `#${idStr}`;
+      hashIdStr = `#${idStr}`;
+    } else {
+      hashIdStr = idStr;
+      idStr = idStr.slice(1);
     }
 
-    var $target = this.$tabTitles.find(`[href$="${idStr}"]`).parent(`.${this.options.linkClass}`);
+    var $target = this.$tabTitles.find(`[href$="${hashIdStr}"],[data-tabs-target="${idStr}"]`).first().parent(`.${this.options.linkClass}`);
 
     this._handleTabChange($target, historyHandled);
   };