想必大家都知道,bootstrap为我们提供了一个下拉菜单的组件,官方也为我们提供两种使用方法
1.标签指定data-toggle
<div class="dropdown">
<button type="button" class="btn dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown">主题
<span class="caret">span>
button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">Javaa>
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" class="divider">li>
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">分离的链接a>
li>
ul>
div>
2.js调用dropdown(‘toggle’)方法
<div class="dropdown">
<a href="#" class="dropdown-toggle" id="dropdownMenu1" >
主题
<span class="caret">span>
a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">Javaa>
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 id="test">testbutton>
div>
body>
<script>
$(function() {
$("#test").click(function() {
$(".dropdown-toggle").dropdown('toggle');
})
})
script>
就是,下拉菜单开启后,官方并没有提供将它隐藏的方法,网上的方法死活说再次调用dropdown(‘toggle’)。。。反正我不行。
那么我想用点击之外来开启下拉菜单呢?(必须得使用JS来控制)
我想到一个方法,使用jQuery提供的一个效果slideUp(),slideDown()
<body>
<div class="dropdown">
<a href="#" class="dropdown-toggle" id="dropdownMenu1" >
主题
<span class="caret">span>
a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">Javaa>
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" class="divider">li>
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">分离的链接a>
li>
ul>
<button id="test">testbutton>
<button id="test1">test1button>
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)