导航菜单切换滑动效果重复工作

时间:2015-07-20 17:49:22

标签: javascript jquery html css menu

我的网站nav-menu在移动菜单中使用了slideToggle功能。它有一个滑动切换器,用于控制菜单的打开/关闭。其中一个菜单有一个sub-menu。当点击具有子菜单的菜单(包含ul)时,子菜单打开并关闭并打开4/5次然后关闭。

我的代码是

<span class="menu-toggler"></span>
<ul class="nav-menu align-right">
  <li class="current"><a href="index.html#header">home</a></li>
  <li><a href="index.html#about-us">about us</a></li>
  <li><a href="index.html#services">services</a></li>
  <li><a href="index.html#works">works</a></li>
  <li><a href="index.html#team">team</a></li>
  <li><a href="index.html#blog">Blog</a></li>
  <li>
      <a href="#" class="extra">Extra</a>
      <ul>
          <li><a href="blog-three.html">blog grid 3</a></li>
          <li><a href="blog-four.html">blog grid 4</a></li>
          <li><a href="blog-single.html">blog single</a></li>
          <li><a href="portfolio-three.html">portfolio 3</a></li>
          <li><a href="portfolio-single.html">portfolio single</a></li>
       </ul>
   </li>
   <li><a href="index.html#contact">contact</a></li>
   <li><a href="" class="search-bar extra"><i class="fa fa-search"></i></a></li>
</ul>

我的js

$(document).on('click', '.menu-toggler' ,function(e){
   $('.nav-menu').slideToggle();
   $('.menu-toggler').toggleClass('open');
});

if($('.nav-menu li').find('ul')){
   $('.nav-menu li ul').addClass('drop-menu');
}

$(window).on('load resize', function(){
        if($(window).width() < 1000){
            $('.drop-menu').parent('li').find('a').on('click', function(){
                $('.drop-menu').slideToggle();
            })
        }
    })

如何停止重复滑动子菜单

1 个答案:

答案 0 :(得分:0)

可能正在阅读多次点击。只需在单击时执行向下滑动功能,并使用单独的功能隐藏菜单。

$(document).on('click', '.menu-toggler' ,function(e){
   $('.nav-menu').slideDown();
   $('.menu-toggler').toggleClass('open');
});

$('.open').on('click',function(){
$('.nav-menu').hide();
});