<!-- Скрипт, который делает кликабельные пункты меню первого и второго уровня, у которых есть выпадающие подпункты на Tilda с сайта bulgkate.ru -->
<script>
$(document).ready(function() {
// 1 уровень — меняете якорь и URL
var linkSubt978 = {
"#submenu:details": "/example"
};
// 2 уровень — меняете название пункта и URL
var linkSubt978Level2ByText = {
"Story": "/story"
};
var openedItemState = {
level1: null,
level2: null
};
function isDesktop() {
return window.matchMedia('(min-width: 980px)').matches;
}
function getCleanText($link) {
return $.trim($link.find('.t978__link-inner').first().text());
}
function applyMenuLinks() {
$('.t978__tm-link').each(function() {
var $link = $(this);
var href = $link.attr('href');
var fin = linkSubt978[href];
if (fin) {
$link.attr('data-link-href', fin);
}
});
$('.t978__menu-link[data-menu-submenu-hook]').each(function() {
var $link = $(this);
var text = getCleanText($link);
var fin = linkSubt978Level2ByText[text];
if (fin) {
$link.attr('data-link-href', fin);
}
});
}
function resetState() {
openedItemState.level1 = null;
openedItemState.level2 = null;
}
setTimeout(applyMenuLinks, 800);
$(window).on('resize', function() {
setTimeout(applyMenuLinks, 300);
resetState();
});
// 1 уровень
$(document).off('click.menuCustomLevel1', '.t978__tm-link');
$(document).on('click.menuCustomLevel1', '.t978__tm-link', function(e) {
var $link = $(this);
var finUrl = $link.attr('data-link-href');
var key = $link.attr('href');
if (!finUrl || !key) return;
if (isDesktop()) {
e.preventDefault();
document.location = finUrl;
return;
}
if (openedItemState.level1 !== key) {
resetState();
openedItemState.level1 = key;
return;
}
e.preventDefault();
document.location = finUrl;
});
// 2 уровень
$(document).off('click.menuCustomLevel2', '.t978__menu-link[data-menu-submenu-hook]');
$(document).on('click.menuCustomLevel2', '.t978__menu-link[data-menu-submenu-hook]', function(e) {
var $link = $(this);
var finUrl = $link.attr('data-link-href');
var key = getCleanText($link);
if (!finUrl || !key) return;
if (isDesktop()) {
e.preventDefault();
document.location = finUrl;
return;
}
if (openedItemState.level2 !== key) {
resetState();
openedItemState.level2 = key;
return;
}
e.preventDefault();
document.location = finUrl;
});
});
</script>