2017-04-12 3 views
0

일반적으로 JS 생성 요소에 코드를 첨부하는 것을 알고 있지만 toggle()이 관련되어 있으면 작동하지 않을 수 있습니다.JS 생성 요소에 toggle() 코드 바인딩

$(document).on('toggle', '.header_mobile_menu .menu-item-has-children a', function() { 
    $(this).siblings('.sub-menu').fadeIn(0); 
    return false; 
}, 
function() { 
    $(this).siblings('.sub-menu').fadeOut(0); 
    return false; 
}); 

이 코드는 (여기에 지정된 코드를 실행하지 않는 타겟으로 요소를 클릭) 발사 실패 여기 내 코드입니다. 왜?

+2

사용'. 'toggle' 이벤트 리스너가 없습니다. – TheUknown

+0

감사합니다. 나는 그 질문을 편집했다. 그것은 비록 문제가 아니에요. – drake035

답변

0

데모를 포크하고 내 코드를 시험해 볼 수있는 데모가 없으므로 여기에 2 센트이고 잘하면 코드 스 니펫이 있습니다.

내가 아는 한 jQuery .on에는 단 하나의 콜백 만 있지만 여기에서 문제가된다.

어떻게 해결할 수 있습니까? 요소를 한 번 클릭 할 때마다 하위 메뉴의 가시성을 확인하고 그에 따라 전환 할 수 있습니다. click` 대신 토글

JS

$('body').on('click', '.header_mobile_menu .menu-item-has-children a', function(e) { 

    e.preventDefault(); 

    var $subMenu = $(this).siblings('.sub-menu'); 
    var visible = $subMenu.is(':visible'); 

    if(visible) $subMenu.fadeOut(0); 
    else $subMenu.fadeIn(0); 

}); 
+0

완벽하게 작동합니다. :) – drake035

관련 문제