중첩 된 메뉴가 예상대로 작동하지 않는 문제가 있습니다. stopPropagation()에 관한 StackOverflow에 많은 것들을 살펴 봤지만 작동하지 않는 것 같습니다.중첩 목록, jquery 및 stopPropagation
사이트는 Wordpress를 기반으로 합니다만, 불행히도 사이트의 메뉴에서 생성 된 HTML을 직접 제어 할 수는 없습니다. 이 프로젝트의 원래 목표는 Wordpress가 기본적으로 지원하지 않는 메뉴 항목에 onClick 기능을 추가하는 것이 었습니다. 그 부분이 작동합니다 - 메뉴를 클릭하면 이벤트가 시작됩니다. 예! 그러나 부모 요소의 이벤트도 발생합니다. 그 때문에 문제가 발생합니다 (클릭 추적 기능으로 onClick 기능이 추가 된 이후). 은 워드에 의해 렌더링 여기
은 (가독성 단축) 메뉴의 첫 번째 부분이다jQuery(document).ready(function($) {
$("li#menu-item-104 a").on("click", function(event) {
console.log('Learn About Us menu');
});
$("li#menu-item-266 a").on("click", function(event) {
console.log('What We Do menu');
});
$("li#menu-item-268 a").on("click", function(event) {
console.log('Company News menu');
});
$("li#menu-item-269 a").on("click", function(event) {
console.log('Our Leadership menu');
});
$("li#menu-item-557 a").on("click", function(event) {
console.log('Recognition menu');
});
$("li#menu-item-270 a").on("click", function(event) {
console.log('Our Heritage menu');
});
$("li#menu-item-331 a").on("click", function(event) {
console.log('Brand Guidelines menu');
});
});
:
여기
<ul id="menu-main-menu" class="nav-menu">
<li id="menu-item-104"><a href="#">Learn About Us</a>
<ul class="sub-menu">
<li id="menu-item-266" class=""><a href="#">What We Do</a></li>
<li id="menu-item-268" class=""><a href="#">Company News</a></li>
<li id="menu-item-269" class=""><a href="#">Our Leadership</a></li>
<li id="menu-item-557" class=""><a href="#">Recognition</a></li>
<li id="menu-item-270" class=""><a href="#">Our Heritage</a></li>
<li id="menu-item-331" class=""><a href="#">Brand Guidelines</a></li>
</ul>
</li>
</ul>
메뉴의 페이지에 첨부되어 생성 jQuery 코드의
하위 요소 (우리가하는 일, 회사 뉴스 등) 중 하나를 클릭하면 onclick 이벤트가 성공적으로 발생하고 부모 요소도 발생합니다. 내가 '회사 소식'메뉴 항목을 클릭한다면
그래서, 콘솔이 포함됩니다 :
Learn About Us menu
Company News menu
키커 내가 event.stopImmediatePropagation을 추가하는 경우()이다; jquery 블록 각각에 부모 요소 만 발생합니다. event.stopPropagation(); 아무런 효과가없는 것 같습니다.
자식 요소를 호출 할 때 부모 요소가 실행되지 않도록 jQuery에 추가해야하는 항목은 무엇입니까?
정말 고마워요! 나는 jquery에 관해서는 여전히 매우 녹색이다. 자손 선택 자/하위 자 선택자에 대한 구문 차이점이 있는지 전혀 몰랐습니다. – Lisa
@Lisa 실제로'li' 자체가 아닌 요소를 앵커하기 위해 핸들러를 바인딩 할 때 전파를 멈출 필요가 없습니다 –