Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery将ul直接放在一个打开的类下面_Jquery_Navigation - Fatal编程技术网

使用jquery将ul直接放在一个打开的类下面

使用jquery将ul直接放在一个打开的类下面,jquery,navigation,Jquery,Navigation,我有以下几点jquery: // Code for Side Navigation $("#sideNav ul li:not(:has(li.current))") .find("ul").hide().end() // Hide all other ULs .hoverIntent( function(){ $(this).children('ul').slideDown('fast'); },

我有以下几点jquery:

    // Code for Side Navigation
    $("#sideNav ul li:not(:has(li.current))")
   .find("ul").hide().end() // Hide all other ULs
   .hoverIntent(
        function(){
            $(this).children('ul').slideDown('fast');
        },
        function(){
         //  $(this).children('ul').slideUp('fast');
        }
    );
它向上和向下滑动导航,使类
当前
打开的所有li保持打开状态。 我想对其进行更改,以便如果li具有当前的
,则其正下方的ul也将打开,但低于该级别的其他ul将保持关闭

以下是HTML结构:

<ul>
    <li>Category 1
        <ul>
            <li class="current">Currently Open
                <ul>
                    <li>Sub Cat 1 - should show
                        <ul><li>Should not Show</li></ul>
                    </li>
                    <li>Sub Cat 2 - should show</li> 
            </li>
        </ul>
    </li>
    <li> Category 2
        <ul><li>Should not Show></li></ul>
    </li>
</ul>
  • 第一类
    • 当前打开
      • 子类别1-应显示
        • 不应显示
        • 子类别2-应显示
      • 第2类
        • 不应显示>

首先,您需要修复html。第二个嵌套UL未关闭。第二种方法是将当前轨迹中的所有LI元素指定给.current类

<ul>
<li class="current">Category 1
    <ul>
        <li class="current">Currently Open
            <ul>
                <li>Sub Cat 1 - should show
                    <ul><li>Should not Show</li></ul>
                </li>
                <li>Sub Cat 2 - should show</li> 
            </ul>
        </li>
    </ul>
</li>
<li> Category 2
    <ul><li>Should not Show</li></ul>
</li>
这应该可以在没有javascript的情况下解决您的问题。这就是你想要的吗

如果需要添加悬停效果,则只需将.current类添加到被悬停的li

我添加了一些鼓舞人心的jquery代码(还没有测试过),这些代码应该可以帮助您:

    $('li:has(ul)').bind('mousein',function(){
    $(this).find('ul').slideDown();
});
$('li:has(ul)').bind('mouseout',function(){
    $(this).find('ul').slideUp();
});
想一想:

增加

$("#sideNav ul li.topCurrent").find("ul").show();
$("#sideNav ul li.topCurrent").find("ul li:not(:has(li.current)) ul").hide();

到jquery代码的底部。

谢谢您的帮助。。。我很感激。
$("#sideNav ul li.topCurrent").find("ul").show();
$("#sideNav ul li.topCurrent").find("ul li:not(:has(li.current)) ul").hide();