2-4 下拉菜单--JavaScript触发方法
本节编程练习不计算学习进度,请电脑登录imooc.com操作

下拉菜单--JavaScript触发方法

和模态弹出窗一样,Bootstrap框架中的下拉菜单也支持JavaScript方法触发下拉菜单显示。使用JavaScript触发下拉菜单和声明式原理是基本类似的,不同的是使用JavaScript方法可以按照自己的方式省略一些元素或者样式。同样用一个简单的示例来做演示:

<ul class="nav nav-pills">
    <li class="dropdown">
        <a href="##"  class="dropdown-toggle" role="button" id="tutorial">教程<b class="caret"></b></a>
        <ul class="dropdown-menu" role="menu" aria-labelledby="tutorial">
            <li role="presentation"><a href="##">CSS3</a></li>
            <li role="presentation"><a href="##">HTML5</a></li>
            <li role="presentation"><a href="##">Sass</a></li>
        </ul>
    </li>
    <li class="active"><a href="##">前端论坛</a></li>
    <li><a href="##">关于我们</a></li>
</ul>

使用JavaScript调用dropdown()方法后,单击激活按钮,会弹出下拉菜单,再次单击的时候会收起下拉菜单。

$(function(){
    $(".dropdown-toggle").dropdown();
})

还可以使用参数“toggle”。当下拉菜单隐藏时,调用dropdown(“toggle”)方法可以显示下拉菜单,反之,如果下拉菜单显示时,调用dropdown(“toggle”)方法可以让下拉菜单隐藏。

$(function(){
    $(".dropdown-toggle").dropdown("toggle");
})

不过使用该参数,每次单击都要两次toggle,就会一直是一个不变的状态。所以,一般情况下,使用示例中不带参数的方法。就算你需要使用参数“toggle”,也建议使用jQuery的one方法:

$(".dropdown-toggle").one("click",function(){
    $(this).dropdown("toggle");
})

任务

我来试试:用JavaScript的方法实现触发导航条的“下拉菜单”

1、删除右侧的a标签的data-toggle="dropdown"属性

2、在任务区写JavaScript代码以触发下接菜单的显示隐藏

不会怎么办?请查看任务提示区。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>下拉菜单--属性声明式方法(一)</title>
  6. <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  7.  
  8. </head>
  9. <body>
  10.  
  11. <h3>示例2</h3>
  12. <ul class="nav nav-pills">
  13. <li class="dropdown">
  14. <a href="##" data-toggle="dropdown" class="dropdown-toggle" role="button" id="tutorial">教程<b class="caret"></b></a>
  15. <ul class="dropdown-menu" role="menu" aria-labelledby="tutorial">
  16. <li role="presentation"><a href="##">CSS3</a></li>
  17. <li role="presentation"><a href="##">HTML5</a></li>
  18. <li role="presentation"><a href="##">Sass</a></li>
  19. </ul>
  20. </li>
  21. <li class="active"><a href="##">前端论坛</a></li>
  22. <li><a href="##">关于我们</a></li>
  23. </ul>
  24. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
  25. <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  26.  
  27. <!--下面是代码任务区-->
  28.  
  29.  
  30.  
  31. </body>
  32. </html>
下一节