2017-04-12 56 views
0

一般來說,我知道要將代碼附加到JS生成的元素,但是當涉及到toggle()時,我無法使其工作。這是我的代碼:將切換()代碼綁定到JS生成的元素

$(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

使用'的click'而不是切換。沒有'toggle'的事件監聽器 – TheUknown

+0

謝謝。我編輯了這個問題。雖然這不是問題。 – drake035

回答

0

由於沒有演示,我可以叉和嘗試我的代碼,這裏是我的2美分和希望工作的代碼片段。

據我所知,jQuery .on只有一個回調,這是這裏的問題。

如何解決這個問題:每次點擊元素時,檢查子菜單的可見性並相應切換。

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