jquery - 如何在Jquery中显示/隐藏多个元素

标签 jquery

我当前正在创建一种包含子菜单的菜单,当选择菜单项时,该特定菜单项的子菜单将出现,并且任何其他打开的子菜单将被关闭。

每个菜单列表都是内联显示的,因此它们彼此相邻,并排 3 个,然后子菜单将直接出现在横跨页面整个宽度的下方,并将菜单的其余部分向下推页。

我无法做到当按下第 1 项时仅显示子菜单 1,依此类推。目前,当按下任意一项时,将显示子菜单1。

下面是 html...

<ul id="menu">
        <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>

<div class="sub-menu 1">
    <ul>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>

<div class="sub-menu 2">
        <ul>
            <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>

<div class="sub-menu 3">
    <ul>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>   




<ul id="menu">
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
</ul>

<div class="sub-menu 4">
    <ul>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>

<div class="sub-menu 5">
    <ul>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>

<div class="sub-menu 6">
    <ul>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
        <li>Sub-menu item</li>
    </ul>
</div>

下面是jquery

$(document).ready(function(){
    $("#menu > li").toggle(
    function(){

             $("#buying-guide-homepage > li").animate({height:109},"slow");
             $(".sub-menu 1").slideDown("slow");

        },
        function(){

        $(".sub-menu 1").slideUp("slow");
        $("#buying-guide-homepage > li").animate({height:89},"slow");

        });
 });

最佳答案

我认为问题在于 .sub-menu 和数字之间的空格。如果您将代码更改为使用 .sub-menu-1 .sub-menu-2 等,我想您会发现它有效。

我认为这种情况的原因是因为空格表示将第二个类应用于 DOM 中的该对象。所以你的.sub-menu 1实际上是两个类,sub-menu1。您也可以仅通过 .1 选择,您就会获得正确的元素。如果您尝试仅执行 $(".sub-menu 1").html("CHANGED THE HTML"); 您将看不到任何变化。但是,如果将其更改为 $(".1").html("CHANGED"); 或将类名称更改为 sub-menu-1 ,然后执行 $(".sub-menu-1").html("CHANGED"),它也会起作用。

关于jquery - 如何在Jquery中显示/隐藏多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052060/

相关文章:

javascript - 异步任务完成后通知

javascript - 如何从多个json数组中获取数据?

javascript - 为什么在 JQuery 中删除类后我的导航不调整大小?

javascript - 如何操纵每次滚动运动的值?

javascript - 需要使用 Passport.js/Node.js 对目录(一页除外)进行身份验证?

javascript - asp.net Mvc 2 中的 jquery 模态对话框

jquery - 淡入 .addClass

jquery datepicker突出显示假期

javascript - 在 jQuery 和纯 JavaScript 中创建对象有何不同?

php - 使用 PHP 更改 CSS 属性