JS闭包实现给DIV添加事件 显示二级菜单例子
2012-03-14 15:25
786 查看
HTML:
1
<ul id="pmenu" class="adminLeftNav">
2
<li >菜单1
3
<div id="p10">
4
<a href="#">·子菜单</a>
5
<a href="#">·子菜单</a>
6
<a href="#">·子菜单</a>
7
</div>
8
</li>
9
<li >菜单2
10
<div id="p11">
11
<a href="#">·子菜单</a>
12
<a href="#">·子菜单理</a>
13
<a href="#">·子菜单录</a>
14
<a href="#">·子菜单</a>
15
<a href="#">·子菜单</a>
16
</div>
17
</li>
18
<li >菜单3
19
<div id="p12">
20
<a href="#">·子菜单</a>
21
<a href="#">·子菜单</a>
22
<a href="#">·子菜单</a>
23
<a href="#">·子菜单</a>
24
<a href="#">·子菜单</a>
25
</div>
26
</li>
27
<li >菜单4
28
<div id="p13">
29
<a href="#">·子菜单</a>
30
<a href="#">·子菜单</a>
31
<a href="#">·子菜单</a>
32
<a href="#">·子菜单</a>
33
<a href="#">·子菜单</a>
34
</div>
35
</li>
36
<li >菜单5
37
<div id="p14">
38
<a href="#">·子菜单</a>
39
<a href="#">·子菜单表</a>
40
<a href="#">·子菜单</a>
41
<a href="#">·子菜单</a>
42
</div>
43
</li>
44
<li >菜单6
45
<div id="p15">
46
<a href="#">·子菜单</a>
47
</div>
48
</li>
49
</ul>
50
CSS:
1
ul.adminLeftNav{
}{width:140px;border:1px solid #A8C8EE;border-bottom:0px;list-style:none;margin:0;padding:0;text-align:left;}
2
ul.adminLeftNav li{
}{ line-height:34px;font-size:12px;color:#0B6BB3;font-weight:bold;border-bottom:1px solid #A8C8EE;
3
background:url(/eaf/images/cmail_7.gif) no-repeat 20px 12px;text-indent:40px;cursor:pointer;background-color:#FFFFFF;}
4
ul.adminLeftNav li:hover{
}{background-color:#C4E7DE;}
5
ul.adminLeftNav li.hover{
}{background-color:#C4E7DE;}
6
ul.adminLeftNav li div{
}{display:none;border-top:1px solid #A8C8EE;padding:5px 0;background:#fff;}
7
ul.adminLeftNav li div a{
}{display:block;line-height:20px;text-indent:30px;font-weight:normal;color:#000;text-decoration:none;}
8
ul.adminLeftNav li div a:hover{
}{text-decoration:underline;}
9
10
JavaScript:
1
var obj1 = document.getElementById("pmenu").getElementsByTagName("li");
2
for(var i=0;i<obj1.length;i++)
3
{
4
//闭包实现给对象添加事件
5
(function()
{
6
var temp = obj1[i];
7
temp.onmouseover = function()
{temp.className='hover';}
8
}
9
)();
10
(function()
{
11
var temp = obj1[i];
12
temp.onmouseout = function()
{temp.className='';}
13
}
14
)();
15
(function()
{
16
var x = i;
17
obj1[x].onclick = function()
{showChildMenu('P1'+x,'#');}
18
}
19
)();
20
}
21
22
function showChildMenu(id,url)
{
23
var obj = document.getElementById("pmenu").getElementsByTagName("div");
24
for(var i=0;i<obj.length;i++)
25
{
26
obj[i].style.display='none';
27
}
28
if(id!='')
29
document.getElementById(id).style.display='block';
30
}
1
<ul id="pmenu" class="adminLeftNav">
2
<li >菜单1
3
<div id="p10">
4
<a href="#">·子菜单</a>
5
<a href="#">·子菜单</a>
6
<a href="#">·子菜单</a>
7
</div>
8
</li>
9
<li >菜单2
10
<div id="p11">
11
<a href="#">·子菜单</a>
12
<a href="#">·子菜单理</a>
13
<a href="#">·子菜单录</a>
14
<a href="#">·子菜单</a>
15
<a href="#">·子菜单</a>
16
</div>
17
</li>
18
<li >菜单3
19
<div id="p12">
20
<a href="#">·子菜单</a>
21
<a href="#">·子菜单</a>
22
<a href="#">·子菜单</a>
23
<a href="#">·子菜单</a>
24
<a href="#">·子菜单</a>
25
</div>
26
</li>
27
<li >菜单4
28
<div id="p13">
29
<a href="#">·子菜单</a>
30
<a href="#">·子菜单</a>
31
<a href="#">·子菜单</a>
32
<a href="#">·子菜单</a>
33
<a href="#">·子菜单</a>
34
</div>
35
</li>
36
<li >菜单5
37
<div id="p14">
38
<a href="#">·子菜单</a>
39
<a href="#">·子菜单表</a>
40
<a href="#">·子菜单</a>
41
<a href="#">·子菜单</a>
42
</div>
43
</li>
44
<li >菜单6
45
<div id="p15">
46
<a href="#">·子菜单</a>
47
</div>
48
</li>
49
</ul>
50
CSS:
1
ul.adminLeftNav{
}{width:140px;border:1px solid #A8C8EE;border-bottom:0px;list-style:none;margin:0;padding:0;text-align:left;}
2
ul.adminLeftNav li{
}{ line-height:34px;font-size:12px;color:#0B6BB3;font-weight:bold;border-bottom:1px solid #A8C8EE;
3
background:url(/eaf/images/cmail_7.gif) no-repeat 20px 12px;text-indent:40px;cursor:pointer;background-color:#FFFFFF;}
4
ul.adminLeftNav li:hover{
}{background-color:#C4E7DE;}
5
ul.adminLeftNav li.hover{
}{background-color:#C4E7DE;}
6
ul.adminLeftNav li div{
}{display:none;border-top:1px solid #A8C8EE;padding:5px 0;background:#fff;}
7
ul.adminLeftNav li div a{
}{display:block;line-height:20px;text-indent:30px;font-weight:normal;color:#000;text-decoration:none;}
8
ul.adminLeftNav li div a:hover{
}{text-decoration:underline;}
9
10
JavaScript:
1
var obj1 = document.getElementById("pmenu").getElementsByTagName("li");
2
for(var i=0;i<obj1.length;i++)
3
{
4
//闭包实现给对象添加事件
5
(function()
{
6
var temp = obj1[i];
7
temp.onmouseover = function()
{temp.className='hover';}
8
}
9
)();
10
(function()
{
11
var temp = obj1[i];
12
temp.onmouseout = function()
{temp.className='';}
13
}
14
)();
15
(function()
{
16
var x = i;
17
obj1[x].onclick = function()
{showChildMenu('P1'+x,'#');}
18
}
19
)();
20
}
21
22
function showChildMenu(id,url)
{
23
var obj = document.getElementById("pmenu").getElementsByTagName("div");
24
for(var i=0;i<obj.length;i++)
25
{
26
obj[i].style.display='none';
27
}
28
if(id!='')
29
document.getElementById(id).style.display='block';
30
}
相关文章推荐
- js中我使用hover事件当处于这个div上时显示,离开时慢慢消失,研究了很久,最后发现添加了return就可以了
- JS实现监听事件,添加删除显示控件
- js实现为a标签添加事件的方法(使用闭包循环)
- JS实现div居中显示的例子
- JS实现超精简响应鼠标显示二级菜单代码
- js实现二级菜单点击显示当前内容效果
- [js]悬浮显示二级菜单的实现
- js实现二级菜单渐隐显示
- mm_menu.js(实现鼠标移入横向显示二级菜单效果)(1)
- JS实现超精简响应鼠标显示二级菜单代码
- mm_menu.js(实现鼠标移入横向显示二级菜单效果)(2)
- mm_menu.js(实现鼠标移入横向显示二级菜单效果)
- js实现二级菜单渐隐显示
- js 实现菜单上下显示
- 用js给div添加鼠标悬停事件
- 鼠标悬浮显示二级菜单效果的jquery实现
- 纯CSS实现鼠标滑过显示子菜单的二级菜单效果
- JS 实现导航菜单中的二级下拉菜单的几种方式
- JS使用cookie实现DIV提示框只显示一次的方法
- js实现div显示与隐藏