div内嵌div时,onmouseover和onmouseout响应问题

html代码:<divclass='frame'onmouseover="show(this,event)"onmouseout="divHide(this)"style... html代码:

<div class='frame' onmouseover="show(this,event)" onmouseout="divHide(this)" style="width: 200px;height:200px;">
<div class="in" onmouseover="showIn(this,event)" onmouseout="divHide(this)" style="width: 100px;height:100px;margin: auto;">
</div>
js代码如下:
function show(it,ev){
var left = ev.clientX+document.body.scrollLeft - document.body.clientLeft;
var top = ev.clientY+ document.body.scrollTop - document.body.clientTop;
var str = "<div style='cursor: pointer;z-index: 120;background: #cc9999;position: absolute;top: "+top+"px;left: "+left+"px;'><div>frame</div></div>";
$("#intro").html(str);
}
function showIn(it,ev){
var left = ev.clientX+document.body.scrollLeft - document.body.clientLeft;
var top = ev.clientY+ document.body.scrollTop - document.body.clientTop;
var str = "<div style='cursor: pointer;z-index: 120;background: #cc9999;position: absolute;top: "+top+"px;left: "+left+"px;'><div>in</div></div>";
$("#intro").html(str);
}
function divHide(it){$("#intro").html("");}
在这样代码的情况下,是两个div,frame和in,in在frame里,鼠标移到frame div上时,无论是否移到in div上,都只显示show(it,ev)的效果,我希望鼠标移到frame div上、in div外时显示show(it,ev)的效果,而移到in div上时显示showIn(it,ev)的效果,可以实现吗?怎么修改代码?
展开
 我来答
404631403
推荐于2016-07-19 · TA获得超过396个赞
知道小有建树答主
回答量:207
采纳率:50%
帮助的人:226万
展开全部
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title><style>
</style>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $(".frame").on({
mouseover:function(){
$("#text").text("frame");
},
mouseout:function(){
$("#text").empty();
}
});
    $(".in").on({
mouseover:function(e){
        //用e.stopPropagation()防止冒泡
e.stopPropagation()
$("#text").text("in");
},
mouseout:function(){
$("#text").empty();
}
});
});
</script>
</head>

<body>

<div class='frame' style="width: 200px;height:200px; background:#F60">
<div class="in"  style="width: 100px;height:100px;margin: auto;background:#06F">
    
</div>
</div>
<div id="text"></div>
</body>
</html>

我用JQ写法给你举个例子吧,主要就在e.stopPropagation()

miniapphhb6iwio7i83d
2015-04-16 · 超过18用户采纳过TA的回答
知道答主
回答量:451
采纳率:0%
帮助的人:111万
展开全部
把里面那两个div absolute试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长城郭靖
2015-04-16 · TA获得超过729个赞
知道小有建树答主
回答量:1090
采纳率:47%
帮助的人:394万
展开全部
防止事件冒泡,renturn false;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式