MediaWiki:Common.js: Difference between revisions

From Delanor Wiki
Jump to navigation Jump to search
Created page with "Any JavaScript here will be loaded for all users on every page load.: window.tabberOptions = { manualStartup: true }; mw.loader.using('jquery.tabber', function () { $('.tabber').each(function () { new tabberObj({ div: this }); }); });"
 
No edit summary
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Basic Tabber script /
window.tabberOptions = {
function tabberObj(args) {
     manualStartup: true
    var tabs = args.div.getElementsByClassName("tabbertab");
};
    var nav = document.createElement("ul");
     nav.className = "tabbernav";


mw.loader.using('jquery.tabber', function () {
    for (var i = 0; i < tabs.length; i++) {
     $('.tabber').each(function () {
        var t = tabs[i];
        new tabberObj({ div: this });
        var li = document.createElement("li");
        li.innerText = t.title;
        li.tabIndex = i;
        li.className = i === 0 ? "tabberactive" : "";
 
        li.addEventListener("click", function () {
            var tabs = this.parentNode.parentNode.getElementsByClassName("tabbertab");
            var lis = this.parentNode.children;
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].style.display = "none";
                lis[j].className = "";
            }
            tabs[this.tabIndex].style.display = "block";
            lis[this.tabIndex].className = "tabberactive";
        });
 
        nav.appendChild(li);
        t.style.display = i === 0 ? "block" : "none";
    }
 
    args.div.insertBefore(nav, args.div.firstChild);
}
 
/ Activate all .tabber elements on load */
mw.loader.using(['mediawiki.util'], function () {
     $(function () {
        var tabbers = document.querySelectorAll(".tabber");
        for (var i = 0; i < tabbers.length; i++) {
            new tabberObj({ div: tabbers[i] });
        }
     });
     });
});
});

Revision as of 20:31, 3 July 2025

/* Basic Tabber script /
function tabberObj(args) {
    var tabs = args.div.getElementsByClassName("tabbertab");
    var nav = document.createElement("ul");
    nav.className = "tabbernav";

    for (var i = 0; i < tabs.length; i++) {
        var t = tabs[i];
        var li = document.createElement("li");
        li.innerText = t.title;
        li.tabIndex = i;
        li.className = i === 0 ? "tabberactive" : "";

        li.addEventListener("click", function () {
            var tabs = this.parentNode.parentNode.getElementsByClassName("tabbertab");
            var lis = this.parentNode.children;
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].style.display = "none";
                lis[j].className = "";
            }
            tabs[this.tabIndex].style.display = "block";
            lis[this.tabIndex].className = "tabberactive";
        });

        nav.appendChild(li);
        t.style.display = i === 0 ? "block" : "none";
    }

    args.div.insertBefore(nav, args.div.firstChild);
}

/ Activate all .tabber elements on load */
mw.loader.using(['mediawiki.util'], function () {
    $(function () {
        var tabbers = document.querySelectorAll(".tabber");
        for (var i = 0; i < tabbers.length; i++) {
            new tabberObj({ div: tabbers[i] });
        }
    });
});