当一个项目在导航中打开时,关闭所有其他项目的宽度jQuery

时间:2015-05-19 14:34:49

标签: javascript jquery html

我有一个用jQuery打开/关闭的导航。我试着这样做,以便当你点击例如。第2项如果打开任何其他物品,应关闭它们。但现在我无法关闭第2项。

$(document).ready(

function () {
    $('a.has-child').click(function () {
        $('div.child').not(this).removeClass("open");
        $(this).closest('li').find('div.child').addClass("open");
    });
});

这是一个小提琴:https://jsfiddle.net/mwcq0yek/

更新:我可以打开第4项并关闭第2项,反之亦然。但我无法单独关闭第2项或第3项。

1 个答案:

答案 0 :(得分:3)

将班级移至所有.child

$('div.child').removeClass("open");

然后将类打开添加到单击的元素

$(this).closest('li').find('div.child').addClass("open");

Demo

<强>更新

如果要关闭.child子菜单,则需要进行测试。你需要的是测试,如果该子菜单有一个类open

    if ( submenu.hasClass("open") ) {
        submenu.removeClass("open");
    } else {
        $('div.child').removeClass("open");
        submenu.addClass("open");
    }

updated demo