2014-12-02 4 views
0

javascript에서 드롭 다운 탐색을 만듭니다. 하위 항목이있는 목록 항목은 기본 동작을 방지하고 다른 작업을 수행하려고합니다. 나는이 작업을하지만 기본 동작이 적용될 때 하위 목록 항목에도 적용됩니다. 내가 위에서 실종 뭔가javascript preventDefault 부모 항목에만 적용

$(".mobilenav li.parent").click(function(event) { 
     if($(this).hasClass('page_item_has_children')){ 
      event.preventDefault(); 
      $(this).addClass('current_page_item'); 
      $(this).find('.children').slideToggle("fast"); 
     } 
    }); 

있습니까 :

여기
<i id="mobnavtrig" class="fa fa-align-justify fa-2x"></i> 
    <div class="mobilenav"> 
     <li class="page_item page-item-2"><a href="/">Home</a></li> 
     <li class="page_item page-item-10"><a href="?page_id=10">Who We Are</a></li> 
     <li class="page_item page-item-25 page_item_has_children current_page_item parent"><a href="?page_id=25">Case Studies</a> 
      <ul class='children'> 
       <li class="page_item page-item-55"><a href="?page_id=55">Barratt Developments</a></li> 
       <li class="page_item page-item-53"><a href="?page_id=53">Care in Bathing</a></li> 
      </ul> 
     </li> 
     <li class="page_item page-item-27"><a href="?page_id=27">Blog</a></li> 
     <li class="page_item page-item-29"><a href="?page_id=29">Get In Touch</a></li> 
    </div> 

내 JS입니다 : 여기

내 HTML입니까? 어린이

+0

'에서는 event.preventDefault은();'사용하려고'false를 반환;' –

답변

8

당신이

$(".mobilenav li.parent .children").click(function(e){ 
    e.stopPropagation(); 

}); 
+0

완벽한, 감사합니다! – danyo

+0

@dan 환영 :) – Balachandran

2

이벤트 버블 링을 중지 stopPropagation()를 사용할 필요가 클릭 난 당신이 원하는 생각 :

$('.mobilenav li.parent > a').click(function(e) { 
    e.preventDefault(); 
}); 

(가)>에만 이전 태그의 직접적인 아이를 일치합니다.

이 확실히 것이다

작동 :

대신
$('.mobilenav li.parent').on('click', "a", function(e) { 
    e.preventDefault(); 
}); 
관련 문제