boostrap实现动态多级菜单

1.html页面

  1. <!DOCTYPE HTML>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Bootstrap 3 的多级下拉菜单示例 </title>
  6. <script type="text/javascript" src="http://libs.baidu.com/jquery/1.9.0/jquery.js"> </script>
  7. <link rel="stylesheet" href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css"/>
  8. <script type="text/javascript" src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"> </script>
  9. <style type="text/css">
  10. .dropdown-submenu {
  11. position: relative;
  12. }
  13. .dropdown-submenu > .dropdown-menu {
  14. top: 0;
  15. left: 100%;
  16. margin-top: - 6px;
  17. margin-left: - 1px;
  18. -webkit-border-radius: 0 6px 6px 6px;
  19. -moz-border-radius: 0 6px 6px;
  20. border-radius: 0 6px 6px 6px;
  21. }
  22. .dropdown-submenu :hover > .dropdown-menu {
  23. display: block;
  24. }
  25. .dropdown-submenu > a :after {
  26. display: block;
  27. content: " ";
  28. float: right;
  29. width: 0;
  30. height: 0;
  31. border-color: transparent;
  32. border-style: solid;
  33. border-width: 5px 0 5px 5px;
  34. border-left-color: #ccc;
  35. margin-top: 5px;
  36. margin-right: - 10px;
  37. }
  38. .dropdown-submenu :hover > a :after {
  39. border-left-color: #fff;
  40. }
  41. .dropdown-submenu .pull-left {
  42. float: none;
  43. }
  44. .dropdown-submenu .pull-left > .dropdown-menu {
  45. left: - 100%;
  46. margin-left: 10px;
  47. -webkit-border-radius: 6px 0 6px 6px;
  48. -moz-border-radius: 6px 0 6px 6px;
  49. border-radius: 6px 0 6px 6px;
  50. }
  51. </style>
  52. </head>
  53. <body>
  54. <div class="container">
  55. <div class="row">
  56. <h2>Bootstrap 3多级下拉菜单 </h2>
  57. <hr>
  58. <div class="dropdown" id=" dropdown ">
  59. <a id="dLabel" role="button" data-toggle="dropdown" class="btn btn-primary" data-target="#"
  60. href= "javascript:;">
  61. 下拉多级菜单 <span class="caret"> </span>
  62. </a>
  63. <ul class="dropdown-menu multi-level" role="menu" aria-labelledby="dropdownMenu">
  64. <li> <a href="javascript:;">一级菜单 </a> </li>
  65. <li> <a href="javascript:;">一级菜单 </a> </li>
  66. <li class="divider"> </li>
  67. <li class="dropdown-submenu">
  68. <a tabindex="-1" href="javascript:;">一级菜单 </a>
  69. <ul class="dropdown-menu">
  70. <li> <a tabindex="-1" href="javascript:;">二级菜单 </a> </li>
  71. <li class="divider"> </li>
  72. <li class="dropdown-submenu">
  73. <a href="javascript:;">二级菜单 </a>
  74. <ul class="dropdown-menu">
  75. <li class="dropdown-submenu">
  76. <a href="javascript:;">三级菜单 </a>
  77. <ul class="dropdown-menu">
  78. <li> <a href="javascript:;">四级菜单 </a> </li>
  79. </ul>
  80. </li>
  81. </ul>
  82. </li>
  83. </ul>
  84. </li>
  85. </ul>
  86. </div>
  87. </div>
  88. </div>
  89. </body>
  90. </html>


2.js函数封装代码
  1. var initmenu = function(dropdown,menudata) {
  2. var dropdown = $(dropdown);
  3. function createNode(data) {
  4. var html = '<ul class="dropdown-menu">';
  5. for( var key in data) {
  6. if(data[key][ "child"]) {
  7. html += '<li class="dropdown-submenu"><a href="'+data[key][ "link"]+ '" onclick="'+data[key][ "click"]+ '">'+data[key][ "name"]+ '</a>';
  8. html += createNode(data[key][ "child"]);
  9. } else {
  10. html += '<li><a href="'+data[key][ "link"]+ '" onclick="'+data[key][ "click"]+ '">'+data[key][ "name"]+ '</a>';
  11. }
  12. dropdown.append( '</li>');
  13. }
  14. html += '</ul>';
  15. return html;
  16. }
  17. var html = createNode(menudata);
  18. dropdown.append(html);
  19. }


3.调用示例
  1. var menudata = {
  2. //name:"顶级菜单",
  3. "id1":{ name: "一级菜单1", link: "link"},
  4. "id2":{ name: "一级菜单2", link: "link"},
  5. "id3":{ name: "一级菜单3", link: "link"},
  6. "id4":{
  7. name: "一级菜单4", link: "link",
  8. child: {
  9. "id5":{ name: "二级菜单1", link: "link"},
  10. "id6":{ name: "二级菜单2", link: "link"},
  11. "id7":
  12. {
  13. name: "二级菜单3",
  14. link: "link",
  15. child:{
  16. "id8": {
  17. name: "三级菜单1",
  18. link: "link",
  19. child:{
  20. "四级菜单":{ name: "二级菜单2", link: "link"}
  21. }
  22. }
  23. }
  24. }
  25. }
  26. }
  27. }
initmenu("#dropdown",menudata);

猜你喜欢

转载自blog.csdn.net/yuer2008200820008/article/details/80933495