@MRcracker

Как сделать выпадащиее меню?

Есть задача. У меня есть меню у которого есть заголовок и выпадающий список. Нужно у каждого заголовка в меню добавить кнопку и сделать так, чтобы меню выпадающее было скрыто изначально и раскрывалось только по клику на кнопку и расскрывались не все списки выпадающие, а только у конкретного заголовка.
Подскажите как такое сделать? Кнопку я добавил. меню перебрал, а как быть дальше не знаю. Всем спасибо.
<div class="sidebar-navigation">
    <ul class="sidebar-navigation__list">
        <li id="menu-item-2781" class="sidebar-title menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-2781">
            <span  class="navigation__link">
                <a href="#">Заголовок</a>
            </span>	
            <ul class="sub-menu">
                <li class="menu-item menu-item-type-post_type menu-item-object-post">
                    <a href="#">123</a>
                </li>
            </ul>
        </li>
        <li id="menu-item-2781" class="sidebar-title menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-2781">
            <span  class="navigation__link">
                <a href="#">Заголовок</a>
            </span> 
            <ul class="sub-menu">
                <li class="menu-item menu-item-type-post_type menu-item-object-post">
                    <a href="#">123</a>
                </li>
            </ul>
        </li>
    </ul>
</div>

<code lang="javascript">
const links = document.querySelectorAll('.navigation__link');

links.forEach(link => {
  const btn = document.createElement('button');
  btn.textContent = "Кнопка";
  link.appendChild(btn);
});

function func() {
	this.className = 'sub-menu';
}


for(let i=0; i<links.length; i++){
	links[i].onclick = func;
}
</code>
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl
кнопке и элементу который скрывать/показывать дать какой-нибудь общий атрибут, чтобы было понятно по клику на данную кнопку чему присваивать класс css

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
21 мая 2024, в 22:35
5000 руб./за проект
21 мая 2024, в 22:05
90000 руб./за проект
21 мая 2024, в 21:56
10000 руб./за проект