繁体   English   中英

在内部单击时关闭Bootstrap下拉菜单

[英]Bootstrap dropdown menu close on click inside

我有以下代码:

 function dosomething(id, event){ event.preventDefault(); event.stopPropagation(); // dosomething } 
 <div class="btn-group"> <a href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="toggle">click</a> <ul class="dropdown-menu options_drop pull-right"> <li><a href="javascript:void(0);" onclick="dosomething(111,event)">do some thing1</a></li> <li><a href="javascript:void(0);" onclick="dosomething(111,event)">do some thing2</a></li> </ul> </div> 

我使用下拉菜单,但是单击两个Li标签之一时,下拉菜单不会自动隐藏。 请帮我解决这个问题,

谢谢大家

另一个建议

使用函数处理悬停,内部有element和event。 因此,您知道何时进入鼠标以及何时离开鼠标。 您可以使用函数属性保存计时器,并在需要时将其清除。

http://jsfiddle.net/blackjim/jw7Uz/3/

 var handleHover = function(evObj){ var $this = $(this); if(!$this.hasClass('open')){ return true; } if(evObj.type === 'mouseleave'){ // on mouseleave... handleHover.timer = setTimeout(function(){ $this.removeClass('open'); },2000); } else if(evObj.type === 'mouseenter'){ // on mouseenter... if(handleHover.timer){ // find timer and clear it clearTimeout(handleHover.timer); delete handleHover.timer; } } }; $('#myDropDown').hover(handleHover); 

假设您想在每次单击时隐藏所有li,请尝试以下操作:

 $("ul li").click(function () { $("li").hide("slow") }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="btn-group"> <a href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="toggle">click</a> <ul class="dropdown-menu options_drop pull-right"> <li><a href="javascript:void(0);">do some thing1</a></li> <li><a href="javascript:void(0);">do some thing2</a></li> </ul> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM