javascript - Wordpress 点击子菜单关闭当前子菜单

标签 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();
        }
    });
}
});

最佳答案

从这里我猜你需要 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有一些其他的想法。如果它对你有用,那太棒了,但你可能想把它放在脑后以防万一。

关于javascript - Wordpress 点击子菜单关闭当前子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249485/

相关文章:

javascript - jQuery ajax 成功不适用于 $(this)?

javascript - 在切线圆(或椭圆)上获得积分并平衡扑克筹码

javascript - SyntaxError : JSON. 解析:预期的属性名称或输入值中的 '}'

javascript - IE11 上的 "Error: Invalid argument."

html - 扩展 float div的宽度

jQuery 日期选择器 - 时区问题

jquery - 有没有办法在jquery中将 "hasClass()"的类名写为 'starts with smt'?

jquery - 如何允许将面板内容高度调整为 0

高度属性的CSS div问题

java - 如何用java正确解析HTML?