MediaWiki:Common.js: различия между версиями

Материал из SAMP
Нет описания правки
Нет описания правки
Строка 19: Строка 19:
mw.loader.using(['jquery']).then(function () {
mw.loader.using(['jquery']).then(function () {
   $(function () {
   $(function () {
     // Применяем только к h2 в контенте статьи
     // Только заголовки h2 в основном контенте
     $('#mw-content-text h2').each(function () {
     $('#mw-content-text h2').each(function () {
       const $header = $(this);
       const $header = $(this);


       // Защита: не обрабатывать заголовки в оглавлении (TOC)
       // Пропускаем, если это внутри TOC
       if ($header.closest('#toc').length > 0) return;
       if ($header.closest('#toc').length > 0) return;


       // Скрываем всё до следующего h2 — включая h3, p, div, ul и т.д.
       // Содержимое до следующего h2
       const $content = $header.nextUntil('h2');
       const $content = $header.nextUntil('h2');


       if ($content.length === 0) return;
       if ($content.length === 0) return;


      // Скрыть по умолчанию
       $content.hide(); // Скрыть по умолчанию
       $content.hide();


       // Кнопка
       // Создаём кнопку (визуально)
       const $btn = $('<span>')
       const $btn = $('<span>')
         .text('[+] ')
         .text('[+] ')
         .css({
         .css({
          cursor: 'pointer',
           color: '#007bff',
           color: '#007bff',
           'margin-right': '8px',
           'margin-right': '8px',
           'user-select': 'none'
           'user-select': 'none'
        })
        .click(function () {
          const visible = $content.is(':visible');
          $content.toggle();
          $btn.text(visible ? '[+] ' : '[–] ');
         });
         });


       // Вставляем кнопку перед заголовком
       // Вставить кнопку
       $header.prepend($btn);
       $header.prepend($btn);
      // Сделать всю строку кликабельной
      $header.css('cursor', 'pointer').click(function () {
        const visible = $content.is(':visible');
        $content.toggle();
        $btn.text(visible ? '[+] ' : '[–] ');
      });
     });
     });
   });
   });
});
});

Версия от 23:53, 1 августа 2025

/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */

$(document).on('click','.index_elem', function(event)
{
	var target = event["target"]["parentElement"]["className"];
	if (target != "index_subelems")
	{
		if ($(this).hasClass('active'))	{ $(this).removeClass('active'); }
		else { $(this).addClass('active');	}
	}
});
$(document).on('click','.index_subelem', function()
{
	var link = $(this).html();
	document.location.href = 'https://wiki.samp.world/index.php/'+link;
});


mw.loader.using(['jquery']).then(function () {
  $(function () {
    // Только заголовки h2 в основном контенте
    $('#mw-content-text h2').each(function () {
      const $header = $(this);

      // Пропускаем, если это внутри TOC
      if ($header.closest('#toc').length > 0) return;

      // Содержимое до следующего h2
      const $content = $header.nextUntil('h2');

      if ($content.length === 0) return;

      $content.hide(); // Скрыть по умолчанию

      // Создаём кнопку (визуально)
      const $btn = $('<span>')
        .text('[+] ')
        .css({
          color: '#007bff',
          'margin-right': '8px',
          'user-select': 'none'
        });

      // Вставить кнопку
      $header.prepend($btn);

      // Сделать всю строку кликабельной
      $header.css('cursor', 'pointer').click(function () {
        const visible = $content.is(':visible');
        $content.toggle();
        $btn.text(visible ? '[+] ' : '[–] ');
      });
    });
  });
});