2017-04-12 60 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