【发布时间】:2014-07-21 14:26:53
【问题描述】:
有 4 个 div,如下所示
<style>
.displayNoneIcon {
display: none;
}
</style>
<div id="div1" style="float: left">
<div id="div11">hello</div>
<div id="div12">hi</div>
</div>
<div id="div2" style="float: right">
<div id="div21" class="displayNoneIcon"><a href="#">bye</a></div>
<div id="div22" class="displayNoneIcon"><a href="#">see ya</a></div>
</div>
当我悬停在 div11 上时,我想显示 div 21,在 div12 上悬停时显示 dev22,就像菜单一样,它应该保持并可点击。如果我从 div11 移出,则 div21 必须隐藏,除非用户进入 div21。目前,如果我将指针从 div11 移向 div21,它就会隐藏起来。我希望它留下来。 两者都必须像上面一样位于单独的 div 中。
我尝试了 mouseenter 和 mouseleave,但它没有满足我的要求。请帮我解决这个问题。
$( "body" ).on( "mouseenter", "#div11", function(event) {
$( "#div21" ).removeClass( "displayNoneIcon" );
});
$( "body" ).on( "mouseleave", "#div11", function(event) {
$( "#div21" ).addClass( "displayNoneIcon" );
});
$( "body" ).on( "mouseenter", "#div12", function(event) {
$( "#div22" ).removeClass( "displayNoneIcon" );
});
$( "body" ).on( "mouseleave", "#div12", function(event) {
$( "#div22" ).addClass( "displayNoneIcon" );
});
提前致谢。 jsfiddle链接
【问题讨论】:
-
我不明白你的问题。您的代码 (JS Fiddle) 似乎符合您的描述。你能解释得更好吗?
-
正如@blex 所说,它工作得很好。
-
.show() 和 .hide() 与使用 display:none; 添加和删除类相同;
-
确实如此。你能发布一个工作错误的 jsFiddle 吗?
-
this JS Fiddle 在做你想做的事吗? (有一个容器。如果你离开这个容器,它会隐藏所有东西。如果没有,它会保持最后一个悬停元素的相关 div 显示)
标签: javascript jquery mouseenter mouseleave qmouseevent