Wordpress单击子菜单关闭当前子菜单

时间:2016-12-20 19:04:34

标签: javascript jquery html css wordpress

我有以下javascript,我用于移动菜单,该工作正常,但是当点击具有另一个子菜单的子菜单项时,它不仅关闭该子菜单,而且还关闭父子菜单。希望有道理。关于如何让它关闭子菜单而不是父子菜单的任何想法?

jQuery('.mobile-menu .sub-menu').hide();
jQuery(document).ready(function () {
jQuery('.mobile-menu .sub-menu').parent().find('a:first').removeAttr('href').css('cursor','default');

if (jQuery('.mobile-menu .menu-item-has-children').length > 0) {
    jQuery('.mobile-menu .menu-item-has-children').click(
    function (event) {
        jQuery(this).addClass('toggled')
        if (jQuery(this).hasClass('toggled')) {
            jQuery(this).children('ul').toggle();
        }
    });
}
});

1 个答案:

答案 0 :(得分:1)

我猜从这里开始,你需要event.stopPropagation(),如:

jQuery('.mobile-menu .sub-menu').hide();
jQuery(document).ready(function () {
jQuery('.mobile-menu .sub-menu').parent().find('a:first').removeAttr('href').css('cursor','default');

if (jQuery('.mobile-menu .menu-item-has-children').length > 0) {
    jQuery('.mobile-menu .menu-item-has-children').click(
    function (event) {
        event.stopPropagation();
        jQuery(this).addClass('toggled')
        if (jQuery(this).hasClass('toggled')) {
            jQuery(this).children('ul').toggle();
        }
    });
}
});

*更新* 我想这对我来说是其中的一天。在我回答之后(并且感谢积分,顺便说一下),在我的脑海里,我记得有一些建议可以阻止传播,但是在使用它时你应该小心。我花了一些时间让Google-fu重新解决问题所在。它在this article中说得很清楚,但是TL; DR可能会产生意想不到的副作用。 This entry at jQuery Fundamentals还有其他一些想法。如果它为你工作,太棒了,但是为了以防万一,你可能想把它放在脑后。