MediaWiki:Common.js: различия между версиями
Перейти к навигации
Перейти к поиску
Shihov (обсуждение | вклад) Нет описания правки |
Shihov (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
console.log("Скрипт дерева категорий загружен."); | |||
$('.CategoryTreeItem').on('click', function(event) { | $('.CategoryTreeItem').on('click', function(event) { | ||
// Проверяем, не был ли клик на | var $target = $(event.target); | ||
if ($ | var $item = $(this); | ||
var $toggleButton = $item.find('.CategoryTreeToggle').first(); | |||
var $link = $item.find('.CategoryTreeLabel a').first(); | |||
// Проверяем, не был ли клик на toggle-кнопке | |||
if ($target.hasClass('CategoryTreeToggle')) { | |||
console.log("Клик на кнопке раскрытия, ничего не делаем."); | |||
return; | |||
} | } | ||
// | // Если клик был на ссылке, но категория не ведет на страницу, блокируем переход | ||
if ($( | if ($target.is('a')) { | ||
var href = $target.attr('href'); | |||
if (href.includes("Category:")) { | |||
console.log("Клик по категории, предотвращаем переход:", href); | |||
event.preventDefault(); | |||
} else { | |||
console.log("Клик по странице, стандартное поведение:", href); | |||
return; // Обычный переход на страницу | |||
} | |||
} | } | ||
// Симуляция клика по кнопке раскрытия, если она есть | |||
if (toggleButton.length) { | if ($toggleButton.length) { | ||
/ | console.log("Раскрытие/сворачивание категории:", $item.text().trim()); | ||
toggleButton.click(); | $toggleButton.click(); | ||
} else { | |||
console.log("Нет вложенных категорий у:", $item.text().trim()); | |||
} | } | ||
}); | }); | ||
}); | }); |
Версия от 07:20, 26 февраля 2025
$(document).ready(function() {
console.log("Скрипт дерева категорий загружен.");
$('.CategoryTreeItem').on('click', function(event) {
var $target = $(event.target);
var $item = $(this);
var $toggleButton = $item.find('.CategoryTreeToggle').first();
var $link = $item.find('.CategoryTreeLabel a').first();
// Проверяем, не был ли клик на toggle-кнопке
if ($target.hasClass('CategoryTreeToggle')) {
console.log("Клик на кнопке раскрытия, ничего не делаем.");
return;
}
// Если клик был на ссылке, но категория не ведет на страницу, блокируем переход
if ($target.is('a')) {
var href = $target.attr('href');
if (href.includes("Category:")) {
console.log("Клик по категории, предотвращаем переход:", href);
event.preventDefault();
} else {
console.log("Клик по странице, стандартное поведение:", href);
return; // Обычный переход на страницу
}
}
// Симуляция клика по кнопке раскрытия, если она есть
if ($toggleButton.length) {
console.log("Раскрытие/сворачивание категории:", $item.text().trim());
$toggleButton.click();
} else {
console.log("Нет вложенных категорий у:", $item.text().trim());
}
});
});