Javascript IE中的嵌套span鼠标悬停问题
我有嵌套的span元素,并且父span有Javascript IE中的嵌套span鼠标悬停问题,javascript,html,css,internet-explorer,javascript-events,Javascript,Html,Css,Internet Explorer,Javascript Events,我有嵌套的span元素,并且父span有mouseover和mouseout事件 <span id='parent' onmouseover='showChild()' onmouseout='hideChild()'> <span id='child'></span> </span> 我在mouseover上显示childspan,在parentspan上显示childspan,并从parent将其隐藏在mouseout上 这一切在
mouseover
和mouseout
事件
<span id='parent' onmouseover='showChild()' onmouseout='hideChild()'>
<span id='child'></span>
</span>
我在mouseover上显示child
span,在parent
span上显示child
span,并从parent
将其隐藏在mouseout
上
这一切在firefox和chrome中都可以正常工作,但在IE中,一旦鼠标移动到子元素上,IE就会将其视为从父元素移出的鼠标,从而隐藏子元素
对于IE,有什么解决方法或正确的方法吗
我可以在子span中放置相同的事件,这在IE中也应该可以,但这样做是否正确?使用css从父div中删除指针事件:
#parent * {
pointer-events: none;
}
您可能可以使用onmouseleave
而不是onmouseout
来解决此问题:
<span id='parent' onmouseover='showChild()' onmouseleave='hideChild()'>
<span id='child'></span>
</span>
看看这个。打开控制台获取输出。在这种情况下,您只需使用检查事件目标是否不是子事件
这是一个工作片段:
函数showChild(e){
e=e | | window.event;
var child=document.getElementById(“child”);
如果(例如,目标!==子对象){
child.style.display=“内联块”;
}
}
功能hideChild(e){
e=e | | window.event;
var child=document.getElementById(“child”);
如果(例如,目标!==子对象){
child.style.display=“无”;
}
}
#父级{
背景颜色:黄色;
宽度:300px;
显示:块;
高度:100px;
}
#孩子{
背景:蓝色;
颜色:白色;
宽度:自动;
高度:自动;
}
Parent
小孩
找到了解决方法
我将父span替换为div
和display:inline块
,现在它在任何地方都能工作
谢谢 你能为此创建一个提琴吗?这只适用于IE11,因为他在IE上有问题。奇怪的是,你的解决方案在提琴上工作,但当我在我的代码中尝试它时,它仍然不工作:(奇怪。你在IE的哪个版本上尝试这个?IE11。但是我找到了解决方法。我发布了我的答案。谢谢!:)很好!您是否仍然使用了onmouseleave
和onmouseout
?
<span id='parent' onmouseenter='showChild()' onmouseleave='hideChild()'>
<span id='child'></span>
</span>