【问题标题】:reset toggle or on click of another element reset toggle?重置切换或单击另一个元素重置切换?
【发布时间】:2012-09-30 17:44:09
【问题描述】:

我正在尝试设置一个点击显示菜单,它有两个单独的菜单。

男性应该点击一个菜单,女性应该点击另一个。

如果单击一个,另一个应该消失(如果它是可见的),如果你点击菜单,那么它也应该消失。或者,如果您再次点击顶级菜单链接,它也应该隐藏子菜单。

我让它听起来比实际更复杂,但这是我目前得到的代码:

http://jsfiddle.net/GLZK5/7/

请注意,如果您单击“人”,它会显示子菜单。单击女性也会显示子菜单并隐藏“男性”子菜单,但如果您返回“男性”,它只会隐藏“女性”而不显示“男性”...

我很困惑..

【问题讨论】:

    标签: jquery click toggle reset


    【解决方案1】:

    步骤

    1. 加载页面时,隐藏所有菜单。
    2. 现在对于处理程序,当您单击它时,您有两种情况。
      1. 查看子菜单是否可见,如果可见,隐藏子菜单。
      2. 如果子菜单不可见,则隐藏所有内容并仅显示子菜单

    使用此代码:

    $(document).ready(function() {
        $(".gen-sel > li > ul").hide();
        $(".gen-sel > li > a").click(function(){
            if ($(this).next().is(":visible"))
                $(this).next().hide();
            else
            {
                $(".gen-sel > li > ul").hide();
                $(this).next().show();
            }
        });
    });​
    

    演示:http://jsfiddle.net/GLZK5/10/

    【讨论】:

    • 嗨,Praveen,非常感谢您的回答 - 我从来没有想过 .next - 这非常有用。我还发现我可以集成身体点击功能来删除其他地方的点击菜单)。我无法解决的一件事是如何让活动类正确删除。我试图在这里更新它:jsfiddle.net/GLZK5/13 希望它更清楚我想要对活动类做什么。
    • 老兄,看看这是否适合你:jsfiddle.net/GLZK5/14 另外,如果有帮助,请考虑选择我的答案... :)
    • 甜蜜!做到了 - 现场:) 现在将奖励答案。谢谢老兄。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多