Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.11.2024, 18:33
Новичок на форуме
Отправить личное сообщение для Lev123 Посмотреть профиль Найти все сообщения от Lev123
 
Регистрация: 25.11.2024
Сообщений: 1

Изменение классов
Здравствуйте! При клике на мгик появляться блок - затем при клике на сведенья появляется другой блок отрабатывает правильно.
Но вот если нажать на МГИК и потом нажать НАЗАД то почему то появляется блок который относиться к Сведеньям
Работает криво
Помогите пожалуйста до конца решить данную проблему

https://codepen.io/levacheb/pen/ByBBZaZ

$(document).ready(function () {
$('.has-submenu').click(function () {
const $this = $(this); // Кэшируем $(this) для повторного использования
const $headerSubmenu = $('.header-submenu');
const $subExpandable = $('.sub-submenu-expandable');
const $hasSubmenu = $('.has-submenu');
const $ttl = $('.ttl');

if ($this.hasClass('mobil_active')) {
// Удаление классов и скрытие блоков
$this.removeClass('mobil_active').siblings().remov eClass('to-left');
$hasSubmenu.not($this).removeClass('to-left');
$headerSubmenu.hide();
$subExpandable.show();

// Добавление классов "to-left" для нужных элементов
$hasSubmenu.slice(1, 10).addClass('to-left');
$('.has-sub-submenu').addClass('mobil_active');
$headerSubmenu.show();
$('li').slice(1, 5).addClass('to-left');
$('.ttl:eq(0)').addClass('to-left');

} else {
// Добавление классов и отображение блоков
$this.addClass('mobil_active').siblings().removeCl ass('to-left');
$hasSubmenu.not($this).addClass('to-left');
$headerSubmenu.show();
$subExpandable.hide();

// Сброс классов
$('li:eq(0)').addClass('mobil_active');
$('.has-sub-submenu').removeClass('mobil_active');
$('li').slice(1, 5).removeClass('to-left');
$('.ttl:eq(0)').removeClass('to-left');

}
});
});

* {
box-sizing: border-box;
margin: 0;
padding: 0;
}

*, * :after, * :before {
box-sizing: border-box;
margin: 0;
padding: 0;
border: 0;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
body {
width: 621px;
}
@media (max-width: 620px) {
.has-submenu {
display: flex;
flex-direction: column;
margin-left: 20px;
}
.links {
color: black;
text-decoration: none;
}
.header-bottom-links-row > li.has-submenu > .ttl::after {
content: "";
width: 10px;
height: 17px;
background: url(mob-menu-arrow.svg) 0 0 no-repeat;
position: absolute;
right: 20px;
margin-top: -16px;
}
.ttl {
margin-bottom: 10px;
}
.ttl > a {
text-decoration: none;
}
.submenu-list {
list-style-type: none;
}


.mobil_active{
display: block;
}

li.mobil_active > .ttl:after {
background-image: url(mob-menu-back.svg) !important;
left: 0 !important;
right: auto !important;
}
ul.submenu-list > li.has-sub-submenu > .ttl:after {
content: "";
width: 10px;
height: 17px;
background: url(mob-menu-arrow.svg) 0 0 no-repeat;
position: absolute;
right: 20px;
margin-top: 0;
}
.to-left {
display: none;
}

.header-submenu {
display: none;
}
.to-right {
display: none;
}

}

<ul class="header-bottom-links-row">
<li class="has-submenu">
<div class="ttl">
<a href="#" class="border_bottom">О Мгике</a>
<div class="dropdown_arrow"></div>
</div>


<div class="header-submenu">
<div class="header-submenu-cont">
<div class="header-submenu-1">
<ul class="submenu-list">
<li>
<div class="ttl">
<a href="#" class="border_bottom">Приветствие ректора</a>
</div>
</li>
<li>
<div class="ttl">
<a href="#" class="border_bottom">История МГИКа</a>
</div>
</li>
<li>
<div class="ttl">
<a href="#" class="border_bottom">Структура МГИКа</a>
</div>
</li>
<li>
<div class="ttl">
<a href="#" class="border_bottom">Ученый совет</a>
</div>
</li>
<li class="has-sub-submenu">
<div class="ttl">
<div class="submenu-arrow"></div>
<a href="#" class="border_bottom">Сведенья об образовательной организации</a>
</div>
<div class="sub-submenu-expandable">
<ul class="sub-submenu">
<li class="">
<a href="">
Основные сведения
</a>
</li>
<li class="">
<a href="">
Структура и органы управления образовательной организацией
</a>
</li>
<li class="">
<a href="">
Документы
</a>
</li>
<li class="">
<a href="">
Образование
</a>
</li>
<li class="">
<a href="">
Образовательные стандарты и требования
</a>
</li>

<li class="">
<a href="">
Руководство
</a>
</li>
<li class="">
<a href="">
Педагогический состав
</a>
</li>
<li class="">
<a href="">
Материально-техническое обеспечение и оснащенность
образовательного процесса. Доступная среда
</a>
</li>
<li class="">
<a href="">
Стипендии и меры поддержки обучающихся
</a>
</li>
<li class="">
<a href="">
Платные образовательные услуги
</a>
</li>
<li class="">
<a href="">
Финансово-хозяйственная деятельность
</a>
</li>
<li class="">
<a href="">
Вакантные места для приема (перевода) обучающихся
</a>
</li>
<li class="">
<a href="">
Международное сотрудничество
</a>
</li>
<li class="">
<a href="">
Организация питания в образовательной организации
</a>
</li>

</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
</li>
</ul>
Ответить с цитированием
  #2 (permalink)  
Старый 25.11.2024, 21:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Lev123,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 25.11.2024, 21:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Lev123,
как вариант, заменить весь ваш код на этот.
$(function() {
            $('.ttl').next().hide();
            $('.ttl').click(function() {
                $(this).next().toggle();
                $(this).parent('li').siblings().toggle();
            })
        });

Последний раз редактировалось рони, 25.11.2024 в 21:18.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависимость классов между собой worldsering Общие вопросы Javascript 9 07.04.2021 23:08
Изменение css-свойства всех классов TorchTT jQuery 3 30.08.2015 06:14
Изменение стиля всех одинаковых классов при наведение(клике) dmitriy39reg jQuery 10 03.02.2015 14:27
Изменение классов Valedus jQuery 4 11.07.2013 18:50
изменение значения классов в js igor' Общие вопросы Javascript 5 02.09.2010 19:32