level 9
<div class="a">
<div class="b">
....
</div>
</div>
外层div有mouseover函数和mouseout函数
对外层div使用mouseover触发函数 鼠标挪到内层div 就会触发外层的mouseout函数 这个问题怎么避免啊?求大神指教
2013年05月21日 07点05分
1
level 9
果断自己顶 nice, nice, nice, nice, nice
2013年05月21日 08点05分
3
level 9
Oh Boy 顶顶顶。。。。我可以发代码。。谁能帮帮我 T.T
2013年05月21日 08点05分
5
level 5
evt.stopPropagation ?evt.stopPropagation() : (evt.cancelBubble=true);
哪里要阻止就放哪里
2013年05月21日 08点05分
6
不是要阻止呀。。。T.T 鼠标滑到内层div边缘 就会触发外层的 mouseout函数。。
2013年05月21日 08点05分
回复 Andyzrd :我知道 滑到里面的哪个DIV 就触发了撒 你用这个 他不就不触发了
2013年05月21日 08点05分
回复 290590589 :这行写在哪呀~
2013年05月21日 08点05分
level 5
<Script>
var oDiv1=document.getElementById('a');
var oDiv2=document.getElementById('b');
oDiv1.onmouseover=function()
{
alert(1)
}
oDiv2.onmouseover=function(evt)
{
evt.stopPropagation?evt.stopPropagation():evt.cancelBubble=true;
}
</script>
2013年05月21日 09点05分
7
![[真棒]](/static/emoticons/u771fu68d2.png)
多谢各位大神 解决了~~ 3Q3Q
2013年05月21日 10点05分
level 10
阻止冒泡对付简单的还好说
如果子结构有数十个呢?
实际上,从a移动到b,触发的事件顺序是这样的:
a的mouseout
b的mouseover
a的mouseover
所以可以用延迟解锁来做兼容处理
var lock=false;
//这是 绑定在a的mouseout上的函数:
var aOut=function(){
lock=false;//鼠标从a移出后解锁
setTimeout(function(){
if(lock){return;}
//这里写真正要在a的mouseout时做的事
},50);
}
//下面是绑定在a的 mouseover上的函数:
var aOver=function(){
lock=true;
}
这样当你从a移入b时,lock会在瞬间先变false后变true,而这时在aOut里延迟了50毫秒执行的函数检查到lock为true就直接return了,不会做真正要做的事
2013年05月21日 09点05分
8
![[真棒]](/static/emoticons/u771fu68d2.png)
多谢各位大神 解决了~~ 3Q3Q
2013年05月21日 10点05分
b的mouseover 绑定在 a的mouseout里不可以么?
2013年05月23日 01点05分