|
Tags: Blanking Manual revert |
| (13 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */
| |
|
| |
|
| // COLLAPSIBLE HEADERS
| |
| $(document).ready(function () {
| |
| // Procesar wrappers que contienen wikitext renderizado
| |
| $(".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";
| |
|
| |
| // Extraer el contenido ya renderizado
| |
| var titleHTML = titleContent.html();
| |
| var bodyHTML = bodyContent.html();
| |
|
| |
| // Crear estructura colapsable
| |
| var header = $('<div class="collapsible-header"></div>');
| |
| var content = $('<div class="collapsible-content"></div>');
| |
|
| |
| if (startsOpen) header.addClass("open");
| |
|
| |
| var arrow = startsOpen ? "▲" : "▼";
| |
| header.append('<span class="collapse-toggle" aria-hidden="true">' + arrow + '</span>');
| |
| header.append(titleHTML);
| |
| content.html(bodyHTML);
| |
|
| |
| if (!startsOpen) content.hide();
| |
|
| |
| // Reemplazar wrapper con nueva estructura
| |
| wrapper.replaceWith(header.add(content));
| |
|
| |
| // Agregar evento click
| |
| header.on("click", function () {
| |
| content.slideToggle(150);
| |
| header.toggleClass("open");
| |
| var icon = header.hasClass("open") ? "▲" : "▼";
| |
| header.find(".collapse-toggle").text(icon);
| |
| });
| |
| });
| |
| });
| |