首先看一下html和css的结构:
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
点击list时相应的现实detail,再次点击合上,旁边还有一个小图标。
效果就是这样:
首先获得所有的list和detail,这里用自己写的一个函数获得所有的class为list和dtail的标签。
函数如下:unction getByClassName(obj,cls){// obj目标元素,cls要获得的class名var element = obj.getElementsByTagName('*');//将目标下的所有子元素获取到var result = []; //定义一个数组,存放获得的classname = "cls" 的所有值for(var i = 0; i< element.length; i++){if(element[i].className == cls){result.push(element[i]);}}return result;}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
返回一个数组,接下来先获取到所有用的标签var nav_left = document.getElementById("nav_left");var list = getByClassName(nav_left,'list');var img = nav_left.getElementsByTagName('img');console.log(list);var detail = getByClassName(nav_left,'detail');console.log(detail);//主要的函数function dianji(){//先初始化所有的detail显示为none,利用立即调用函数为每一个绑定所有的detail显示为none;for (var i = 0; i < detail.length; i++) { (function(index){ detail[index].style.display = "none"; })(i); }//在利用立即调用函数为每一个list绑定点击事件for(var i = 0; i< list.length; i++){ (function(value){ list[value].onclick = function(){ toggle(detail[value],img[value]); } })(i); }}dianji();//使用toggle()函数进行判断,为每一个detail添加相应的动作。function toggle(element,img){ if(element.style.display == "none"){ element.style.display = "block"; img.src = "./images/zhankai.png"; } else if(element.style.display == "block"){ element.style.display = "none"; img.src = "./images/heshang.png"; } else{ alert('chucuo'); }}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
下面附上完整的源码
成功页系统
系统
系统
日程管理
日程管理
日程管理
日报统计
日报统计
日报统计
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182