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 通过单击主菜单链接添加和删除子菜单类_Jquery_Html_Css_Drop Down Menu_Megamenu - Fatal编程技术网

Jquery 通过单击主菜单链接添加和删除子菜单类

Jquery 通过单击主菜单链接添加和删除子菜单类,jquery,html,css,drop-down-menu,megamenu,Jquery,Html,Css,Drop Down Menu,Megamenu,我试图创建一个大型菜单的多层次下拉列表 首先,我们点击子菜单链接展开所有“UL”,然后点击“megamenu”链接。。应删除所有子菜单ul类。因此,只有mega菜单div可见 jsfiddle jQuery代码: $('.mynavul > li > a').on('click', function(){ if(!$(this).parents().hasClass('onclickopen')){ $('.mynavul > li').remove

我试图创建一个大型菜单的多层次下拉列表

首先,我们点击子菜单链接展开所有“UL”,然后点击“megamenu”链接。。应删除所有子菜单ul类。因此,只有mega菜单div可见

jsfiddle

jQuery代码:

$('.mynavul > li > a').on('click', function(){
    if(!$(this).parents().hasClass('onclickopen')){
        $('.mynavul > li').removeClass('onclickopen');    
    }
    $(this).parent().toggleClass('onclickopen');
    });

    $('.mynavul01 > li > a').on('click', function(){
    $(this).parent().toggleClass('onclickopen02');
    });

    $('.mynavul02 > li > a').on('click', function(){
    $(this).parent().toggleClass('onclickopen03');
    });

    $("body").click(function () {
        $(".mynavul > li").removeClass('onclickopen');
        $(".mynavul01 > li").removeClass('onclickopen02');
        $(".mynavul02 > li").removeClass('onclickopen03');
    });

    $(".mynavul > li > a, .mynavul01 > li > a, .mynavul02 > li > a, .mynavul03 > li > a").click(function(e){
    e.stopPropagation();
    });
CSS:

HTML代码:

<nav class="mynav clearfix">
  <ul class="mynavul">
    <li><a href="#">Dropdown</a>
      <ul class="mynavul01">
        <li><a href="#">Submenu item 1 </a></li>
        <li><a href="#">Submenu item 2</a></li>
        <li><a href="#">Submenu item 3</a></li>
        <li><a href="#">Submenu item 4 »</a>
          <ul class="mynavul02">
            <li><a href="#">Submenu item 1</a></li>
            <li><a href="#">Submenu item 2</a></li>
            <li><a href="#">Submenu item 3</a></li>
            <li><a href="#">Submenu item 4  »</a>
              <ul class="mynavul03">
                <li class=""><a href="#">Submenu item 1</a></li>
                <li class=""><a href="#">Submenu item 2</a></li>
                <li class=""><a href="#">Submenu item 3</a></li>
                <li class=""><a href="#">Submenu item 4</a></li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#">Mega menu</a>
      <div class="bigmenu clearfix"> Lot of links<br>
        Lot of links<br>
        Lot of links<br>
      </div>
    </li>
  </ul>
</nav>

  • 大量链接
    大量链接
    大量链接

我所做的只是将jquery代码放在您提供的代码中。if语句不在jsfiddle链接中。现在工作!就我个人而言,我更喜欢悬停功能,而不是用css查询我的移动导航


谢谢你的回答。。但当用户单击“确定”任何身体区域时,我们需要执行相同的事件。。您可以检查代码..并单击主体区域所有子“UL”类都已删除(.onclickopen、.onclickopen02、onclickopen03)。。当用户点击“超级菜单”链接时,我想做同样的事情。对不起,我没有得到你们想要的。你想为你的“大菜单”制作更多的子菜单吗?您想让菜单在单击关闭时消失吗?megamenu中没有子菜单下拉链接中只有3个子菜单简要说明您想要什么当我单击mega menu时,它在JSFIDLE中消失,在您的版本中不是吗?
<nav class="mynav clearfix">
  <ul class="mynavul">
    <li><a href="#">Dropdown</a>
      <ul class="mynavul01">
        <li><a href="#">Submenu item 1 </a></li>
        <li><a href="#">Submenu item 2</a></li>
        <li><a href="#">Submenu item 3</a></li>
        <li><a href="#">Submenu item 4 »</a>
          <ul class="mynavul02">
            <li><a href="#">Submenu item 1</a></li>
            <li><a href="#">Submenu item 2</a></li>
            <li><a href="#">Submenu item 3</a></li>
            <li><a href="#">Submenu item 4  »</a>
              <ul class="mynavul03">
                <li class=""><a href="#">Submenu item 1</a></li>
                <li class=""><a href="#">Submenu item 2</a></li>
                <li class=""><a href="#">Submenu item 3</a></li>
                <li class=""><a href="#">Submenu item 4</a></li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#">Mega menu</a>
      <div class="bigmenu clearfix"> Lot of links<br>
        Lot of links<br>
        Lot of links<br>
      </div>
    </li>
  </ul>
</nav>
$('.mynavul > li > a').on('click', function(){
if(!$(this).parents().hasClass('onclickopen')){
    $('.mynavul > li').removeClass('onclickopen');    
}
$(this).parent().toggleClass('onclickopen');
});

$('.mynavul01 > li > a').on('click', function(){
$(this).parent().toggleClass('onclickopen02');
});

$('.mynavul02 > li > a').on('click', function(){
$(this).parent().toggleClass('onclickopen03');
});

$("body").click(function () {
    $(".mynavul > li").removeClass('onclickopen');
    $(".mynavul01 > li").removeClass('onclickopen02');
    $(".mynavul02 > li").removeClass('onclickopen03');
});

$(".mynavul > li > a, .mynavul01 > li > a, .mynavul02 > li > a, .mynavul03 > li > a").click(function(e){
e.stopPropagation();
});
//this works fine for what you want