MediaWiki:Gadget-Tabs.js: Difference between revisions

MediaWiki interface page
(Created page with "$('div.tabdiv').each(function() { var tabs = $(this); tabs.find('> ul a').removeAttr('href'); tabs.find('> ul > li').click(function() { var li = $(this);...")
 
m (Don't change location hash to tab ID or else page will jump to the tabs when changing tabs)
 
(3 intermediate revisions by the same user not shown)
Line 8: Line 8:
         tabs.children('div').eq(index).show().siblings('div').hide();
         tabs.children('div').eq(index).show().siblings('div').hide();
     });
     });
     tabs.find('> ul > li').first().click();
      
    // activate first non-hidden tab without changing the hash
    var li = tabs.find('> ul > li:not(".hidden")').first();
    var index = li.index();
    li.addClass('active').siblings('li').removeClass('active');
    tabs.children('div').eq(index).show().siblings('div').hide();
});
});


(function(window, $) {
(function(window, $) {
     var tabbers = window.location.hash;
     var tabbers = window.location.hash;
     tabbers = tabbers.replace(/^#!tabbers:/, '');
 
     tabbers = tabbers.replace(/tabtag/, '@');
     tabbers = tabbers.split('/') || [];
     tabbers = tabbers.split('/') || [];


Line 19: Line 25:
         var route = tabbers.shift() || '';
         var route = tabbers.shift() || '';
         route = route.split('@');
         route = route.split('@');
         var child = route[0] || '';
         var child = route[1] || '';
         var parent = route[1] || '';
         var parent = route[0] || '';
         $('#' + parent + 'tabtag' + child).click();
         $(parent + 'tabtag' + child).click();
     }
     }
})(window, $);
})(window, $);

Latest revision as of 02:34, 17 June 2020

$('div.tabdiv').each(function() {
    var tabs = $(this);
    tabs.find('> ul a').removeAttr('href');
    tabs.find('> ul > li').click(function() {
        var li = $(this);
        var index = li.index();
        li.addClass('active').siblings('li').removeClass('active');
        tabs.children('div').eq(index).show().siblings('div').hide();
    });
    
    // activate first non-hidden tab without changing the hash
    var li = tabs.find('> ul > li:not(".hidden")').first();
    var index = li.index();
    li.addClass('active').siblings('li').removeClass('active');
    tabs.children('div').eq(index).show().siblings('div').hide();
});

(function(window, $) {
    var tabbers = window.location.hash;
  
    tabbers = tabbers.replace(/tabtag/, '@');
    tabbers = tabbers.split('/') || [];

    while(tabbers.length) {
        var route = tabbers.shift() || '';
        route = route.split('@');
        var child = route[1] || '';
        var parent = route[0] || '';
        $(parent + 'tabtag' + child).click();
    }
})(window, $);