2012-12-17 3 views
0

토글을 사용하고 + 문자 (.plusminus 클래스의 요소)를 클릭하면 트리거되는 드롭 다운 메뉴가 있습니다. 토글이 시작되면 + 표시는 '표시 : 없음'으로 토글되며 표시는 대신 - (빼기) 표시가 토글됩니다.JQuery : 트리거 토글 링 토글 링크

문제가있는 경우 빼기 기호를 누르면 드롭 다운 메뉴가 다시 실행되지 않고 + 기호가 표시 될 때만 작동합니다.

내가 잘못 한 것을 아는 사람이 있습니까?

감사

$('#menu li:has(ul)').each(function() { 
    $(this).append("<span class='submenuplus plusminus'> &#43; </span>"); 
    $(this).append("<span class='submenuminus plusminus'> &#45; </span>"); 
}); 

$('#menu').on('click','.plusminus',function() { 
    $(this).prev("ul").slideToggle("slow"), 
    $('.submenuminus, .submenuplus').toggle(); 
}); 

답변

1

나는 당신을 위해 클릭 이벤트를 정리. 당신을 트립되는 다음

$('#menu li:has(ul)').each(function() { 
    $(this).append("<span class='submenuplus plusminus'> &#43; </span>"); 
    $(this).append("<span class='submenuminus plusminus'> &#45; </span>"); 
    $(this).find('.submenuminus').hide();  
}); 

$('#menu .plusminus').click(function(){ 
    $(this).prevAll("ul").slideToggle("slow"), 
    $(this).parent().find('.plusminus').toggle(); 
});​ 

한 가지 문제 같은 것을 시도하는 것은

이것은 + 기호에 대한 중첩 된 <ul>을 반환
$(this).prev("ul") 

의 사용이다,하지만하지 - 가입을위한 때문에 .prev([selector]) 선택기와 일치하는 형제가 즉각 입니다. <ul>하지즉시 형제입니다 대신 .prevAll([selector])를 사용해야합니다 <span>,합니다 (+ 기호로 <span>이 둘 사이에 있습니다)에 - 기호의.

+0

아 감사합니다. - 이제는 이해합니다. 이것은 내가 필요한 것에 아주 가깝다. 그것은 작동하지만 단지 "this".plusminus (다른 모든 것들을 토글) 만 토글하는 방법이 필요합니다. 이상하게도 $ (this) .find ('. plusminus'). toggle(); 그것을 깨는 것 같다 – MeltingDog

+0

당신이 묻는 것을하기 위해 나의 대답을 업데이트했습니다. – deefour