@ART_CORP
Hard work

Vue js обработка конкретного события?

сам код
<li class="sidebar__item" v-for="category in sidebarList.cat">
                    <h2 class="sidebar__title" @click="sidebarshow()">{{category}}</h2>
                        <ul class="submenu" v-if='sidebarshow()'>
                            <li class="submenu__item" v-for="article in articles(category)">
                                <a href="" class="submenu__link">{{article}}</a>
                            </li>
                        </ul>
                   </li>
            </ul>

На выходе получается меню с submenu это все сделано, как тут правильно настроить ,чтоб при клике открывался только один из submenu ?
В jquery повесил бы обработчик на клик и получил бы родитель ,после нашел бы конкретное submenu и добавил бы класс
пример
$(this).parent.find('.submenu').addClass('active')
Но в Vue нечего не приходит в голову ,был бы рад любой помощи.
  • Вопрос задан
  • 322 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Добавляете в data свойство active, которое и используете для отображения нужного submenu вместо sidebarshow:

<li class="sidebar__item" v-for="(category, index) in sidebarList.cat">
  <h2 class="sidebar__title" @click="active = active === index ? null : index">{{ category }}</h2>
  <ul class="submenu" v-if="active === index">

Лучше конечно, если у вас в category есть какой-нибудь уникальный идентификатор - тогда вместо индекса следует использовать его.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы