Jump to content

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 3: Line 3:


// ==========================================================================
// ==========================================================================
     // CONTROLADOR DE DROPDOWN INDEPENDENTE NO ÍNDICE (TOC)
     // CONTROLADOR DE DROPDOWN DIRECTO NO ÍNDICE (TOC)
     // ==========================================================================
     // ==========================================================================
      
      
     // Almeja apenas os itens de lista internos, protegendo o cabeçalho global
     // Procura todos os itens de lista normais do índice
     $('.vector-toc-contents .vector-toc-list .vector-toc-list-item').each(function() {
     $('#mw-panel-toc .vector-toc-list-item, .vector-page-titlebar-toc .vector-toc-list-item').each(function() {
         var $listItem = $(this);
         var $listItem = $(this);
         var $subList = $listItem.children('.vector-toc-list');
         var $subList = $listItem.children('ul, .vector-toc-list');
          
          
         // Valida se o item tem subcapítulos reais com conteúdo
         // Proteção: Ignora se for o nó principal do "Datasheet" ou se não tiver subcapítulos
         if ($subList.length > 0 && $subList.children('.vector-toc-list-item').length > 0) {
        if ($listItem.hasClass('vector-toc-title') || $listItem.attr('id') === 'sidebar-toc-welcome') {
            return;
        }
       
        // Só avança se a lista filha tiver sub-itens lá dentro
         if ($subList.length > 0 && $subList.children('li, .vector-toc-list-item').length > 0) {
              
              
             // Cria a seta apenas se ela ainda não existir nesta linha
             // Cria a seta apenas se ela ainda não existir nesta linha
Line 18: Line 23:
                 var $arrow = $('<span class="toc-toggle-arrow">▶</span>');
                 var $arrow = $('<span class="toc-toggle-arrow">▶</span>');
                  
                  
                 // Evento focado puramente na ação de expandir/recolher a árvore
                 // Evento de clique focado apenas na seta
                 $arrow.click(function(e) {
                 $arrow.click(function(e) {
                     e.preventDefault();
                     e.preventDefault();
Line 25: Line 30:
                 });
                 });
                  
                  
                 // IMPORTANTE: Adiciona a seta ANTES do link, solta no item de lista
                 // Adiciona a seta no topo do container do item
                 $listItem.prepend($arrow);
                 $listItem.prepend($arrow);
             }
             }