快速解决bootstrap下拉菜单无法隐藏的问题

下拉菜单的两种实现

想必大家都知道,bootstrap为我们提供了一个下拉菜单的组件,官方也为我们提供两种使用方法

1.标签指定data-toggle

<div> <button type="button" data-toggle="dropdown">主题 <span></span> </button> <ul role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >Java</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据挖掘</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据通信/网络</a> </li> <li role="presentation"></li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >分离的链接</a> </li> </ul> </div>

2.js调用dropdown(‘toggle')方法

<div> <a href="#" > 主题 <span></span> </a> <ul role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >Java</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据挖掘</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据通信/网络</a> </li> </ul> <button>test</button> </div> </body> <script> $(function() { $("#test").click(function() { $(".dropdown-toggle").dropdown('toggle'); }) }) </script>

第二种方法有个很严重的问题

就是,下拉菜单开启后,官方并没有提供将它隐藏的方法,网上的方法死活说再次调用dropdown(‘toggle')。。。反正我不行。

那么我想用点击之外来开启下拉菜单呢?(必须得使用JS来控制)

我想到一个方法,使用jQuery提供的一个效果slideUp(),slideDown()

<body> <div> <a href="#" > 主题 <span></span> </a> <ul role="menu" aria-labelledby="dropdownMenu1"> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >Java</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据挖掘</a> </li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >数据通信/网络</a> </li> <li role="presentation"></li> <li role="presentation"> <a role="menuitem" tabindex="-1" href="#" >分离的链接</a> </li> </ul> <button>test</button> <button>test1</button> </div> </body> <script> $(function() { $("#test").click(function() { $(".dropdown-menu").slideUp(); }) $("#test1").click(function() { $(".dropdown-menu").slideDown(); }) }) </script>

好了现在能实现开和关了,但是速度有点慢?没事slide可以通过参数调节速度甚至还有回调函数来替代$(selector).on("hidden.bs.dropdown', function () {})(对下拉菜单收回时间的监听),满分!

$(selector).slideUp(speed,callback)

speed 可选。规定元素从可见到隐藏的速度(或者相反)。默认为 “normal”。 可能的值:

毫秒 (比如 1500)

“slow”
“normal”
“fast”

在设置速度的情况下,元素从可见到隐藏的过程中,会逐渐地改变其高度(这样会创造滑动效果)。

callback

可选。slideUp 函数执行完之后,要执行的函数。 除非设置了 speed 参数,否则不能设置该参数。

以上这篇快速解决bootstrap下拉菜单无法隐藏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f7f6d12103e16ff9e171e6dde7142e0a.html