Array

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 6: Line 6:
         var header = $(this);
         var header = $(this);
         var content = header.next(".collapsible-content");
         var content = header.next(".collapsible-content");
         // Skip if there is no associated collapsible-content block
         // Skip if there is no associated collapsible-content block
         if (content.length === 0) return;
         if (content.length === 0) return;
         // Check if the section should start open
         // Check if the section should start open
         var startsOpen = header.hasClass("open");
         var startsOpen = header.hasClass("open");
         // Hide content only if it should start closed
         // Hide content only if it should start closed
         if (!startsOpen) {
         if (!startsOpen) {
             content.hide();
             content.hide();
         }
         }
         // Initial toggle indicator
 
         var indicator = startsOpen ? "[-]" : "[+]";
         // Arrow indicator ▼ (closed) or ▲ (open)
         var indicator = startsOpen ? "" : "";
         header.append(' <span class="collapse-toggle">' + indicator + '</span>');
         header.append(' <span class="collapse-toggle">' + indicator + '</span>');
         // Make header clickable
         // Make header clickable
         header.css("cursor", "pointer");
         header.css("cursor", "pointer");
         // Collapse / Expand behavior
         // Collapse / Expand behavior
         header.on("click", function () {
         header.on("click", function () {
             content.slideToggle(200);
             content.slideToggle(200);
            // Toggle arrow
             var toggle = header.find(".collapse-toggle");
             var toggle = header.find(".collapse-toggle");
             toggle.text(toggle.text() === "[+]" ? "[-]" : "[+]");
             var isOpen = toggle.text() === "";
            toggle.text(isOpen ? "" : "▲");
 
            // Toggle class for CSS rotation (optional)
            header.toggleClass("open");
         });
         });
     });
     });
});
});

Revision as of 14:00, 28 November 2025

/* Any JavaScript here will be loaded for all users on every page load. */

// COLLAPSIBLE HEADER
$(document).ready(function () {
    $(".collapsible-header").each(function () {
        var header = $(this);
        var content = header.next(".collapsible-content");

        // Skip if there is no associated collapsible-content block
        if (content.length === 0) return;

        // Check if the section should start open
        var startsOpen = header.hasClass("open");

        // Hide content only if it should start closed
        if (!startsOpen) {
            content.hide();
        }

        // Arrow indicator ▼ (closed) or ▲ (open)
        var indicator = startsOpen ? "▲" : "▼";
        header.append(' <span class="collapse-toggle">' + indicator + '</span>');

        // Make header clickable
        header.css("cursor", "pointer");

        // Collapse / Expand behavior
        header.on("click", function () {
            content.slideToggle(200);

            // Toggle arrow
            var toggle = header.find(".collapse-toggle");
            var isOpen = toggle.text() === "▲";
            toggle.text(isOpen ? "▼" : "▲");

            // Toggle class for CSS rotation (optional)
            header.toggleClass("open");
        });
    });
});