Здравствуйте, можете, подсказать по JavaScript. Есть многоуровневое меню, и вот в данной ситуации, по клику на кнопку – span с классом submenu-caret, у меня открываются и закрываются абсолютно все подменю с классом shop-menu-level-2
Как сделать, чтобы функция slideDown() и slideUp() работала только для того блока с классом shop-menu-level-2, который находится в том же родителе, что и кнопка submenu-caret, по которой делается клик?
// shop-menu
$('.submenu-caret').click(function () {
if (this.innerText == "+") {
this.innerText = "-";
$('.shop-menu-level-2').slideDown();
} else {
this.innerText = "+";
$('.shop-menu-level-2').slideUp();
}
});
<li class="level-1 parent">
<div>
<span class="submenu-caret">+</span>
<a href="#">Двигатели</a>
</div>
<ul class="shop-menu-level-2">
<li class="level-2">
<a href="#">Двигатели дизельные</a>
</li>
<li class="level-2">
<a href="#">Двигатели бензиновые</a>
</li>
</ul>
</li>
Доходите до родителя $(this).closest('.level-1') - потом вниз .find('.shop-menu-level-2')
$('.submenu-caret').click(function () {
if (this.innerText == "+") {
this.innerText = "-";
$(this).closest('.level-1').find('.shop-menu-level-2').slideDown();
} else {
this.innerText = "+";
$(this).closest('.level-1').find('.shop-menu-level-2').slideUp();
}
});
$('.submenu-caret').click(function () {
if (this.innerText == "+") {
this.innerText = "-";
$(this).closest('.parent').find('.shop-menu-level-2').slideDown();
} else {
this.innerText = "+";
$(this).closest('.parent').find('.shop-menu-level-2').slideUp();
}
});
Сборка персонального компьютера от Artline: умный выбор для современных пользователей