MediaWiki:Common.js: различия между версиями
Перейти к навигации
Перейти к поиску
Shihov (обсуждение | вклад) Нет описания правки |
Shihov (обсуждение | вклад) Нет описания правки |
||
Строка 6: | Строка 6: | ||
var $item = $(this); | var $item = $(this); | ||
var $toggleButton = $item.find('.CategoryTreeToggle').first(); | var $toggleButton = $item.find('.CategoryTreeToggle').first(); | ||
var $link = $item.find(' | var $link = $item.find('a').first(); // Находим первую ссылку внутри элемента | ||
// | // 1. Если клик был на toggle-кнопке, ничего не делаем | ||
if ($target.hasClass('CategoryTreeToggle')) { | if ($target.hasClass('CategoryTreeToggle')) { | ||
console.log("Клик на кнопке раскрытия, ничего не делаем."); | console.log("Клик на кнопке раскрытия, ничего не делаем."); | ||
Строка 14: | Строка 14: | ||
} | } | ||
// Если клик был на ссылке, | // 2. Если клик был на ссылке, предотвращаем переход | ||
if ($target.is('a')) { | if ($target.is('a')) { | ||
console.log("Клик по ссылке категории, блокируем переход:", $target.attr('href')); | |||
event.preventDefault(); | |||
} | } | ||
// | // 3. Если есть кнопка раскрытия, кликаем на неё | ||
if ($toggleButton.length) { | if ($toggleButton.length) { | ||
console.log("Раскрытие/сворачивание категории:", $item.text().trim()); | console.log("Раскрытие/сворачивание категории:", $item.text().trim()); |
Версия от 07:23, 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('a').first(); // Находим первую ссылку внутри элемента
// 1. Если клик был на toggle-кнопке, ничего не делаем
if ($target.hasClass('CategoryTreeToggle')) {
console.log("Клик на кнопке раскрытия, ничего не делаем.");
return;
}
// 2. Если клик был на ссылке, предотвращаем переход
if ($target.is('a')) {
console.log("Клик по ссылке категории, блокируем переход:", $target.attr('href'));
event.preventDefault();
}
// 3. Если есть кнопка раскрытия, кликаем на неё
if ($toggleButton.length) {
console.log("Раскрытие/сворачивание категории:", $item.text().trim());
$toggleButton.click();
} else {
console.log("Нет вложенных категорий у:", $item.text().trim());
}
});
});