单击Jquery打开和关闭子菜单 [英] open and close submenus on click Jquery

查看:77
本文介绍了单击Jquery打开和关闭子菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个主菜单,它会在jquery中显示带有click事件的子菜单(客户端想要点击而不是悬停)所以我让它工作但是我仍然无法找出一件事:我有菜单和子菜单工作正常,所以当我点击新闻时,子菜单很好地向下滑动,当我点击新闻时它会关闭,但是如果在打开新闻'子菜单后我点击资源,则会出现相应的子菜单但是新闻'子菜单保持打开状态,我希望以前的子菜单在点击其他菜单项时或在主菜单区域外的任何想法时关闭?这是我得到的:

I have a main menu that will display the submenus with a click event in jquery (client wanted to be click instead hover) so I got it working however I still can't figure out one thing: I have the menu and submenus working properly so when I click on "news" the submenu slides down nicely and when I click back on "news" it closes back, however if after openening news' submenu and I click on "resources" the respective submenu appears but news' submenu stays open, I want the previous submenu to close when clicking on another menu item or outside the main menu area any ideas? here's what I got:

<ul id="MainMenu">
        <li><a href="#">Home</a></li>
        <li><a href="#">About Us</a></li>
        <li>
              <a href="#">News</a>
              <ul class="noJS">
                <li><a href="#">sub menu 1</a></li>
                <li><a href="#">sub menu 2</a></li>
                <li><a href="#">sub menu 3</a></li>
                <li><a href="#">sub menu 4</a></li>
                <li><a href="#">sub menu 5</a></li>
                <li><a href="#">sub menu 6</a></li>
            </ul>                         
        </li>
        <li><a href="#">Jobs</a></li>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">Admin</a></li>
        <li>
            <a href="#">Resources</a>
            <ul class="noJS">
                <li><a href="#">sub menu 1</a></li>
                <li><a href="#">sub menu 2</a></li>
                <li><a href="#">sub menu 3</a></li>
                <li><a href="#">sub menu 4</a></li>
                <li><a href="#">sub menu 5</a></li>
                <li><a href="#">sub menu 6</a></li>
            </ul>
        </li>
        <li class="lastChild"><a href="#">New Button</a></li>
    </ul>

和jquery:

    $(function(){
$('#MainMenu').find('> li').click(function(){
    $(this).find('ul')
    .stop(true, true).slideToggle(400); 
    return false;       
});    
});


推荐答案

尝试这样的事情

$(function() {
    $('#MainMenu > li').click(function(e) { // limit click to children of mainmenue
        var $el = $('ul',this); // element to toggle
        $('#MainMenu > li > ul').not($el).slideUp(); // slide up other elements
        $el.stop(true, true).slideToggle(400); // toggle element
        return false;
    });
    $('#MainMenu > li > ul > li').click(function(e) {
        e.stopPropagation();  // stop events from bubbling from sub menu clicks
    });
});​

http://jsfiddle.net/Ssu32/

这篇关于单击Jquery打开和关闭子菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆