2012-11-08 4 views
0

맨 위에 버튼과 아이콘이 있습니다. 버튼을 클릭하면 클래스가 성공적으로 토글됩니다. 그러나 버튼 안의 아이콘을 클릭하면 클래스가 전환되지 않습니다.클래스 토글 백본, 자바 스크립트

<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne-{{id}}"> 
    <button id="btnCollapse" class="btn" style="width: 25px;" type="button"> 
     <i id="accordionIcon-{{id}}" class="right"></i> 
    </button> 
</a> 

그리고 자바 스크립트 :이 같은

events: { 
    'click #btnCollapse': 'handleClass', 
    'click .right': 'handleClass' 
}, 

handleClass: function(event) { 
    $(event.target).find('i').toggleClass('right down'); 
} 

답변

1

사용 처리기 : 여기 내 HTML입니다

handleClass: function(event) { 
    var $target; 
    if (event.target.tagName.toUpperCase() == 'I') { 
    $target = $(event.target); 
    } else { 
    $target = $(event.target).find('i'); 
    } 

    $target.toggleClass('right down'); 
} 
+0

'$ (ev.target) .closest ('. accordion-toggle '). find ('i ')는 더 나은 선택 일 수 있습니다. –

+0

@muistooshort, 역시 사실! 코드는 적지 만 추가 컨테이너 요소에 따라 다릅니다. IMHO 덜 의존성 - 더 나은 코드 디자인입니다. –