У меня есть готовое меню, которое нельзя изменить.Меню составлено из вложенных списков на трех уровнях.Я хочу открыть только ту часть, где родительский элемент нажат.
Вот мой HTML:
<ul>
<li>Coffee</li>
<li>Tea
<ul class="sub-menu">
<li>Black tea</li>
<li>Green tea
<ul class="sub-menu">
<li>From India</li>
<li>From Philippines</li>
</ul>
</li>
</ul>
</li>
<li>Milk</li>
</ul>
Вначале отображается весь список, поэтому я добавил некоторый код (jquery и CSS) для нацеливания на разные подменю и закрыл их.
$(".sub-menu").not(".sub-menu > li > .sub-menu").addClass("closed first_level");
$(".sub-menu > li > .sub-menu").addClass("closed second_level");
.closed {display: none !important;}
.opened {display: block !important;}
и теперь открытие и закрытие:
$( ".first_level" ).parent("li").click(function() {
$(".first_level").toggleClass("closed opened");
$(".first_level").slideToggle("slow");
});
$( ".second_level" ).parent("li").click(function() {
$(".second_level").toggleClass("closed opened");
$(".second_level").slideToggle("slow");
});
Мое решение работает только наполовину, есть много эффектов, которые я не хочу.Подменю скользят вверх и вниз, перед ними открываются и другие некрасивые вещи.
Я знаю, что мой jQuery - беспорядок, но я все еще учусь.Так может кто-нибудь помочь мне, пожалуйста?
Другой вопрос: эта проблема должна быть довольно распространенной.Какая фраза будет правильной для поиска решений поисковыми системами?Я не мог найти ничего, что помогло мне.
Спасибо!