Array

MediaWiki:Common.js: Difference between revisions

(Created page with "→‎Any JavaScript here will be loaded for all users on every page load.: $(document).ready(function () { // Buscar cada bloque que define el collapse $(".collapsible-header").each(function () { var header = $(this); var content = header.next(".collapsible-content"); // SOLO el siguiente bloque // Si no hay contenido asociado, ignorar if (content.length === 0) return; // Asegurar que empiece cerrado co...")
 
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
// COLLAPSIBLE HEADERS
 
$(document).ready(function () {
$(document).ready(function () {
 
     $(".collapsible-wrapper").each(function () {
     // Buscar cada bloque que define el collapse
        var wrapper = $(this);
    $(".collapsible-header").each(function () {
        var titleContent = wrapper.find(".collapsible-title-content");
        var bodyContent = wrapper.find(".collapsible-body-content");
        if (titleContent.length === 0 || bodyContent.length === 0) return;
        var startsOpen = wrapper.data("state") === "open";
        var titleHTML = titleContent.html();
        var bodyHTML = bodyContent.html();
        var header = $('<div class="collapsible-header"></div>');
        var content = $('<div class="collapsible-content"></div>');
        if (startsOpen) header.addClass("open");
        var arrow = startsOpen ? "▲" : "▼";
        header.append(titleHTML);
        header.append('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
        content.html(bodyHTML);
        if (!startsOpen) content.hide();
        wrapper.replaceWith(header.add(content));
       
        // Inicializar elementos mw-collapsible dentro del contenido
        content.find('.mw-collapsible').each(function() {
            if (typeof mw !== 'undefined' && mw.hook) {
                mw.hook('wikipage.content').fire($(this));
            }
        });
          
          
        var header = $(this);
        var content = header.next(".collapsible-content"); // SOLO el siguiente bloque
        // Si no hay contenido asociado, ignorar
        if (content.length === 0) return;
        // Asegurar que empiece cerrado
        content.hide();
        // Indicador visual
        header.append(' <span class="collapse-toggle">[+]</span>');
        // Hacer clickeable
        header.css("cursor", "pointer");
        // Evento de colapso
         header.on("click", function () {
         header.on("click", function () {
             content.slideToggle(200);
             content.slideToggle(150);
 
             header.toggleClass("open");
             // Cambiar indicador
             var icon = header.hasClass("open") ? "▲" : "▼";
             var toggle = header.find(".collapse-toggle");
             header.find(".collapse-toggle").text(icon);
             toggle.text(toggle.text() === "[+]" ? "[-]" : "[+]");
         });
         });
     });
     });
});
});

Latest revision as of 14:36, 11 December 2025

// COLLAPSIBLE HEADERS
$(document).ready(function () {
    $(".collapsible-wrapper").each(function () {
        var wrapper = $(this);
        var titleContent = wrapper.find(".collapsible-title-content");
        var bodyContent = wrapper.find(".collapsible-body-content");
        if (titleContent.length === 0 || bodyContent.length === 0) return;
        var startsOpen = wrapper.data("state") === "open";
        var titleHTML = titleContent.html();
        var bodyHTML = bodyContent.html();
        var header = $('<div class="collapsible-header"></div>');
        var content = $('<div class="collapsible-content"></div>');
        if (startsOpen) header.addClass("open");
        var arrow = startsOpen ? "▲" : "▼";
        header.append(titleHTML);
        header.append('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
        content.html(bodyHTML);
        if (!startsOpen) content.hide();
        wrapper.replaceWith(header.add(content));
        
        // Inicializar elementos mw-collapsible dentro del contenido
        content.find('.mw-collapsible').each(function() {
            if (typeof mw !== 'undefined' && mw.hook) {
                mw.hook('wikipage.content').fire($(this));
            }
        });
        
        header.on("click", function () {
            content.slideToggle(150);
            header.toggleClass("open");
            var icon = header.hasClass("open") ? "▲" : "▼";
            header.find(".collapse-toggle").text(icon);
        });
    });
});