事件冒泡的问题经验小结,通过onmouseover选项卡实现img图片的变化

复制代码 代码如下:

复制代码 代码如下:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head runat=”server”>
<title></title>
<style type=”text/css”>
*
{
padding: 0px;
margin: 0px;
}
.dis_none
{
display: none;
}
.dis_block
{
display: block;
}
.subSheet
{
position: absolute;
left: 100px;
z-index: 10;
width: 100px;
}
ul
{
list-style: none;
}
li
{
border: 1px solid blue;
width: 100px;
background-color: Gray;
}
li a
{
}
</style>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<ul>
<li onmousemove=”mouse_over(1010)”
onmouseout=”mouse_out(1010)”><a href=””>.NET精华区</a>
<div class=”subSheet dis_none” id=”1010″>
<ul>
<li><a href=””>新手入门</a></li>
<li><a href=””>托管代码</a></li>
<li><a href=””>非托管代码</a></li>
ca88亚洲城唯一官方网站,</ul>
</div>
</li>
<li onmousemove=”mouse_over(1011)”
onmouseout=”mouse_out(1011)”><a href=””>嵌入式</a>
<div class=”subSheet dis_none” id=”1011″>
<ul>
<li><a href=””>新手入门</a></li>
<li><a href=””>嵌入式入门</a></li>
<li><a href=””>嵌入式进阶</a></li>
</ul>
</div>
</li>
<li onmousemove=”mouse_over(1012)”
onmouseout=”mouse_out(1012)”><a href=””>单片机</a>
<div class=”subSheet dis_none” id=”1012″>
<ul>
<li><a href=””>新手入门</a></li>
<li><a href=””>单片机入门</a></li>
<li><a href=””>单片机进阶</a></li>
</ul>
</div>
</li>
<li><a href=””>软件测试</a></li>
</ul>
</div>
</form>
</body>
</html>
<script src=”Scripts/jquery-1.6.3.js”
type=”text/javascript”></script>
<script type=”text/javascript”>
function mouse_over(i) {
$(“#” + i).removeClass(“dis_none”);
}
function mouse_out(i) {
$(“#” + i).addClass(“dis_none”);
}
</script>

<div id=”div1″
onmouseover=”document.getElementById(‘div2′).style.display=’block’;”>触发显示浮动层</div>
<div id=”div2″ onmousemove=’this.style.display=””;’
onmouseout=’this.style.display=”none”;’>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>

<body>
<div id=”main”>
<div id=”head”>
<ul>
<li id=”tab1″ onmouseover=”show(1)”
style=”background-color:#FFF”>图片一</li>
<li id=”tab2″ onmouseover=”show(2)”>图片二</li>
<li id=”tab3″ onmouseover=”show(3)”>图片三</li>
<li id=”tab4″ onmouseover=”show(4)”>图片四</li>
</ul>
</div>
<div id=”content”>
<p id=”p1″><img src=”图片0″/></p>
<p id=”p2″ style=”display:none;”><img
src=“图片1”></p>
<p id=”p3″ style=”display:none;”><img src=”图片2″
height=”320px;”/></p>
<p id=”p4″ style=”display:none;”><img
src=”图片3″/></p>
</div>
</div>
</body>
<script>
function show(n){
for(var i=1;i<=4;i++){
document.getElementById(“tab”+i).style.backgroundColor=’green’;
document.getElementById(“p”+i).style.display=’none’;
//display实现内容的隐藏与否的控制,当为none是,隐藏
}
document.getElementById(“tab”+n).style.backgroundColor=’white’;
document.getElementById(“p”+n).style.display=’block’;
//当block时,隐藏的即可显示
}
</script>
</html>

复制代码 代码如下:

解决办法二:
利用onmousemove事件优先的办法,来防止在子元素中触发onmouseout:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;
<html xmlns=”;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″
/>
<title>选项卡实现img图片的变换</title>
<style type=”text/css”>
#main{ height:420px; width:400px;}
#head{
width:400px;
height:52px;
position:absolute;
left:10px;
top: -12px;
background-color:green;
}
#head li{ float:left; list-style:none; width:85px;}
#content{
width:400px;
height:350px;
background-color:#FC6;
text-align:center;
position:absolute;
top:36px;
left: 10px;
}
</style>
</head>

最近在学些web前段的知识,看见博客园首页左侧的一个级联菜单,就想写一个demo.呵呵

复制代码 代码如下:

您可能感兴趣的文章:

  • js
    阻止子元素响应父元素的onmouseout事件具体实现
  • JS小功能(onmouseover实现选择月份)实例代码
  • onmouseover和onmouseout的一些问题思考
  • js ondocumentready onmouseover onclick onmouseout
    样式
  • 兼容ie和firefox的鼠标经过(onmouseover和onmouseout)实现–简短版
  • js下关于onmouseout、事件冒泡的问题经验小结
  • onmouseover事件和onmouseout事件全面理解

您可能感兴趣的文章:

  • js实现addClass,removeClass,hasClass的函数代码
  • Jquery.addClass始终无效原因分析
  • javascript自定义的addClass()方法
  • 使用JS实现jQuery的addClass, removeClass,
    hasClass函数功能

<div id=”div1″>触发显示浮动层</div>
<div id=”div2″>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
<script>
$(“#div1”).mouseover(function(){
$(“#div2”).show();
$(“#div2”).bind(“mouseleave”,function(){
$(this).hide();
});//此句需要写在触发浮动层的函数内
};);
</script>

您可能感兴趣的文章:

  • js
    阻止子元素响应父元素的onmouseout事件具体实现
  • 通过onmouseover选项卡实现img图片的变化
  • JS小功能(onmouseover实现选择月份)实例代码
  • onmouseover和onmouseout的一些问题思考
  • js ondocumentready onmouseover onclick onmouseout
    样式
  • 兼容ie和firefox的鼠标经过(onmouseover和onmouseout)实现–简短版
  • onmouseover事件和onmouseout事件全面理解

问题是这样的:一个div元素要触发onmouseout事件,同时这个div内部还有子元素,于是当鼠标移动到该div的子元素上时,onmouseout事件也被触发了。在要做浮动层效果的时候会经常遇到这个问题。
解决方法一:
使用jQuery,这个大家都会的:

发表评论

电子邮件地址不会被公开。 必填项已用*标注