Я пытаюсь получить простую вертикальную навигацию, чтобы отображать дочерние элементы элемента списка по щелчку.Проблема с логикой щелчка вложенной навигации
Однако, когда вы нажимаете на любой из этих вложенных элементов списка детей, вы по существу снова нажимаете на элемент родительского списка. Что вызывает функцию щелчка, чтобы удалить «.active» и закрывает элемент родительского списка прямо перед тем, как пользователь перенаправляется на выбранную страницу. Это выглядит плохо и совершенно раздражает.
Любые советы о том, как получить функцию щелчка, чтобы не влиять на элементы списка детей?
$('#sidebar > li.parent').click(function(){
if($(this).hasClass('active')){
$(this).removeClass('active');
}else{
$(this).addClass('active');
}
});
HTML
<aside id="tertiary" class="tertiary">
<ul id="sidebar" class="sidebar">
<li class="active"><a href="/">Portal</a></li>
<li><a href="ecards.html">Start Here</a></li>
<li><a href="ecards.html">Cards</a></li>
<li class="parent"><a href="programs.html">Programs</a>
<ul>
<li><a href="#">LOS</a></li>
<li><a href="#">Safety</a></li>
<li><a href="#">Retirement</a></li>
<li><a href="#">Wellness</a></li>
<li><a href="#">Investors</a></li>
</ul>
</li>
<li><a href="#">Marketplace</a></li>
<li><a href="#">Reporting</a></li>
</ul>
</aside>
Добавить либо 'вернуть false' или использовать' .stopPropagation() 'и связать, что к детям. – j08691
@ j08691: 'return false' также остановил бы ссылки от работы. –
@TrueBlueAussie - Вы видите, что дочерние ссылки просто '#'? – j08691