9
9
* 导航树
10
10
*
11
11
* @param left_nav
12
+ * @param mode 0-自动 1-全部展开 2-全部折叠
12
13
*/
13
- $ . wz . navigator_tree = function ( left_nav ) {
14
+ $ . wz . navigator_tree = function ( left_nav , mode ) {
14
15
var icon_close = 'fa fa-folder-o' ;
15
16
var icon_open = 'fa fa-folder-open-o' ;
17
+ mode = mode || 0 ;
16
18
17
19
var childrenShow = function ( elementLi ) {
18
20
elementLi . children ( 'ul' ) . show ( ) ;
@@ -21,29 +23,74 @@ $.wz.navigator_tree = function (left_nav) {
21
23
return elementLi ;
22
24
} ;
23
25
24
- // 先隐藏所有的li下的子元素
25
- left_nav . find ( 'li.wz-has-child' ) . children ( 'ul' ) . hide ( ) ;
26
- // 在包含子元素的li中添加展开图标和链接
27
- left_nav . find ( 'li.wz-has-child' ) . prepend ( '<a href="javascript:;" class="wz-nav-fold ' + icon_close + '"></a>' ) ;
28
- // 菜单折叠事件处理
29
- left_nav . find ( 'li.wz-has-child' ) . find ( '.wz-nav-fold' )
30
- . on ( 'click' , function ( ) {
31
- if ( $ ( this ) . hasClass ( icon_close ) ) {
32
- $ ( this ) . removeClass ( icon_close ) . addClass ( icon_open ) ;
33
- } else {
34
- $ ( this ) . removeClass ( icon_open ) . addClass ( icon_close ) ;
35
- }
26
+ switch ( mode ) {
27
+ case 0 : // 自动
28
+ ( function ( ) {
29
+ // 先隐藏所有的li下的子元素
30
+ left_nav . find ( 'li.wz-has-child' ) . children ( 'ul' ) . hide ( ) ;
31
+ // 在包含子元素的li中添加展开图标和链接
32
+ left_nav . find ( 'li.wz-has-child' ) . prepend ( '<a href="javascript:;" class="wz-nav-fold ' + icon_close + '"></a>' ) ;
33
+ // 菜单折叠事件处理
34
+ left_nav . find ( 'li.wz-has-child' ) . find ( '.wz-nav-fold' )
35
+ . on ( 'click' , function ( ) {
36
+ if ( $ ( this ) . hasClass ( icon_close ) ) {
37
+ $ ( this ) . removeClass ( icon_close ) . addClass ( icon_open ) ;
38
+ } else {
39
+ $ ( this ) . removeClass ( icon_open ) . addClass ( icon_close ) ;
40
+ }
36
41
37
- $ ( this ) . parent ( ) . children ( 'ul' ) . slideToggle ( 'fast' ) ;
38
- } ) ;
42
+ $ ( this ) . parent ( ) . children ( 'ul' ) . slideToggle ( 'fast' ) ;
43
+ } ) ;
39
44
40
- left_nav . find ( '.wz-auto-open' ) . children ( 'li.wz-has-child' ) . each ( function ( ) {
41
- var childrenCount = $ ( this ) . children ( 'ul' ) . children ( 'li' ) . length ;
42
- // 如果一级菜单的子元素小于7个,则自动展开
43
- if ( childrenCount < 7 ) {
44
- $ ( this ) . children ( 'a.wz-nav-fold' ) . trigger ( 'click' ) ;
45
- }
46
- } ) ;
45
+ left_nav . find ( '.wz-auto-open' ) . children ( 'li.wz-has-child' ) . each ( function ( ) {
46
+ var childrenCount = $ ( this ) . children ( 'ul' ) . children ( 'li' ) . length ;
47
+ // 如果一级菜单的子元素小于7个,则自动展开
48
+ if ( childrenCount < 7 ) {
49
+ $ ( this ) . children ( 'a.wz-nav-fold' ) . trigger ( 'click' ) ;
50
+ }
51
+ } ) ;
52
+
53
+ // 一级元素的子元素自动展示
54
+ childrenShow ( left_nav . children ( 'li' ) ) ;
55
+ } ) ( ) ;
56
+ break ;
57
+ case 1 : // 全部展开
58
+ ( function ( ) {
59
+ // 在包含子元素的li中添加展开图标和链接
60
+ left_nav . find ( 'li.wz-has-child' ) . prepend ( '<a href="javascript:;" class="wz-nav-fold ' + icon_open + '"></a>' ) ;
61
+ // 菜单折叠事件处理
62
+ left_nav . find ( 'li.wz-has-child' ) . find ( '.wz-nav-fold' )
63
+ . on ( 'click' , function ( ) {
64
+ if ( $ ( this ) . hasClass ( icon_close ) ) {
65
+ $ ( this ) . removeClass ( icon_close ) . addClass ( icon_open ) ;
66
+ } else {
67
+ $ ( this ) . removeClass ( icon_open ) . addClass ( icon_close ) ;
68
+ }
69
+
70
+ $ ( this ) . parent ( ) . children ( 'ul' ) . slideToggle ( 'fast' ) ;
71
+ } ) ;
72
+ } ) ( )
73
+ break ;
74
+ case 2 : // 全部折叠
75
+ ( function ( ) {
76
+ // 先隐藏所有的li下的子元素
77
+ left_nav . find ( 'li.wz-has-child' ) . children ( 'ul' ) . hide ( ) ;
78
+ // 在包含子元素的li中添加展开图标和链接
79
+ left_nav . find ( 'li.wz-has-child' ) . prepend ( '<a href="javascript:;" class="wz-nav-fold ' + icon_close + '"></a>' ) ;
80
+ // 菜单折叠事件处理
81
+ left_nav . find ( 'li.wz-has-child' ) . find ( '.wz-nav-fold' )
82
+ . on ( 'click' , function ( ) {
83
+ if ( $ ( this ) . hasClass ( icon_close ) ) {
84
+ $ ( this ) . removeClass ( icon_close ) . addClass ( icon_open ) ;
85
+ } else {
86
+ $ ( this ) . removeClass ( icon_open ) . addClass ( icon_close ) ;
87
+ }
88
+
89
+ $ ( this ) . parent ( ) . children ( 'ul' ) . slideToggle ( 'fast' ) ;
90
+ } ) ;
91
+ } ) ( )
92
+ break ;
93
+ }
47
94
48
95
// 当前选中元素的所有父级元素全部自动展开
49
96
left_nav . find ( 'li.active' ) . parents ( 'ul' ) . show ( ) ;
@@ -54,10 +101,6 @@ $.wz.navigator_tree = function (left_nav) {
54
101
55
102
// 当前选中元素的下级元素自动展开
56
103
childrenShow ( left_nav . find ( 'li.active' ) ) ;
57
-
58
- // 一级元素的子元素自动展示
59
- childrenShow ( left_nav . children ( 'li' ) ) ;
60
-
61
104
left_nav . find ( 'li:not(.wz-has-child)' ) . map ( function ( ) {
62
105
var nav_icon = ( $ ( this ) . data ( 'type' ) === 'swagger' ? 'fa-code' : ( $ ( this ) . data ( 'type' ) === 'markdown' ? 'fa-file-text-o' : 'fa-table' ) ) ;
63
106
$ ( this ) . prepend ( '<a class="fa ' + nav_icon + ' wz-nav-fold" href="javascript:;"></a>' ) ;
0 commit comments