2017-01-19 33 views
1

我在我的網站中有一個嵌套的導航欄,並且它已經可以工作,但是,我想在欄外單擊時關閉摺疊的欄。如何在單擊導航欄外部時關閉摺疊的酒吧?

下面是javascript代碼,我有:

$(document).ready(function() { 
 
    $('#nav li').click(function() { 
 
    //slide up all the link lists 
 
    $(this).children('ul').slideToggle(); 
 
    }) 
 
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav class="collapse navbar-collapse navbar-right" role="navigation"> 
 
    <ul id="nav" class="nav navbar-nav"> 
 
    <li class="current"><a href="#body">Home</a> 
 
    </li> 
 
    <li><a href="#">About</a> 
 
     <ul> 
 
     <li><a href="#aboutus">Link1</a> 
 
     </li> 
 
     <li><a href="#">Link2</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li><a href="#">Etc</a> 
 
     <ul> 
 
     <li><a href="#">Link1</a> 
 
     </li> 
 
     <li><a href="#">Link2</a> 
 
     </li> 
 
     <li><a href="#">Link3</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li><a href="#">Etc2</a> 
 
     <ul> 
 
     <li><a href="#">Link1</a> 
 
     </li> 
 
     <li><a href="#">Link2</a> 
 
     </li> 
 
     <li><a href="#">Link3</a> 
 
     </li> 
 
     </ul> 
 
    </li> 
 
    <li><a href="#contact">Contact</a> 
 
    </li> 
 
    </ul> 
 
</nav>

+0

只需在欄旁邊的元素上使用onclick函數即可。例如在標題之後,如果你有一個部分,然後設置onclick該部分。 –

回答

0

您可以使用此代碼

$('body').on('click touchstart', function(e) { 
        if ($(".classname").is(":visible")) { 
         if ($(e.target).closest(".classname").length == 0 && !$(e.target).hasClass('active')) { 
          closeMobileMenu(menuobj); 
         } 
        } 
       }); 
0

大約是這樣的內容:

$(document).click(function(event) { 
    if(!$(event.target).closest('#nav').length) { 
    $('#nav li').children('ul').slideToggle(); 
    } 
}); 
相關問題