나는 간단한 수직 탐색을 통해 클릭시 목록 항목의 자식을 표시하려고 노력해 왔습니다.중첩 된 탐색 클릭 논리 문제
그러나 중첩 된 항목 중 하나를 클릭하면 하위 목록 항목이 본질적으로 상위 목록 항목을 '클릭'합니다. 내 클릭 기능으로 '.active'를 제거하고 사용자가 선택한 페이지로 리디렉션되기 바로 전에 상위 목록 항목을 닫습니다. 이것은 나빠 보이고 완전히 짜증나게합니다.
클릭 기능을 어린이 목록 항목에 영향을주지 않게하는 방법에 대한 조언이 있으십니까?
$('#sidebar > li.parent').click(function(){
if($(this).hasClass('active')){
$(this).removeClass('active');
}else{
$(this).addClass('active');
}
});
당신은 부모 요소로 버블 링 클릭 이벤트를 방지하기 위해 stopPropagation
을 사용하는 하위 요소에 대한 클릭 핸들러를 추가 할 수
<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