我有一个父元素,当悬停在上面时会显示一个元素。我还有一个子元素,当悬停在上面时会显示不同的元素。
我不希望它们同时触发 - 即,如果您将鼠标悬停在子元素上,我只想显示它的关联元素 - 并抑制父元素的悬停。
我无法让它可靠地工作。可能遗漏了一些明显的东西。有任何想法吗?
编辑 - 澄清:
在这种情况下,“父”和“子”是相互不了解的独立可重用组件,因此我实际上无法将上下文从一个注入另一个
这是我使用 jQuery 和hoverIntent插件设置的演示。
HTML:
<div id="parentBar">
<ul id="childMenu">
<li>Menu 1</li>
</ul>
</div>
<div id="barInfo">
<p>This is shown when hovering overing inside of the parent bar.</p>
</div>
<div id="menuInfo">
<p>This is shown when hovering over inside of the child menu.</p>
</div>
CSS:
#parentBar{width:500px;border:solid 1px black;}
#childMenu{margin-left:10px;padding-left:10px;width:100px;border:solid 1px green;}
#menuInfo, #barInfo{display:none;}
JavaScript:
$('#parentBar').hoverIntent({
//interval: 500,
over: function(e) {
$('#barInfo').show();
},
out: function(e) {
$('#barInfo').hide();
}
});
$('#childMenu').hoverIntent({
//interval: 250,
over: function(e) {
$('#menuInfo').show();
},
out: function(e) {
$('#menuInfo').hide();
}
});
$('#childMenu').bind('mouseenter', function(e){
e.stopPropagation();
});
您可以在 jsFiddle 上查看:http: //jsfiddle.net/hNqQ7/1