【发布时间】:2014-09-19 04:13:55
【问题描述】:
我觉得我的问题很愚蠢,但我无法解决它。我在一个容器中有两个 div,其中一个默认隐藏。当鼠标悬停在父 div 上时,我想用 slideDown 显示隐藏的 div 并隐藏另一个。当我将鼠标从 div 上方移动到底部时,它工作得很好,但是如果我从底部移动鼠标,它会上下滑动一段时间。这里我有一个小提琴:
[编辑]
我忘了说我需要它来处理动态创建的 div。
jQuery(document).on({
mouseenter: function () {
jQuery(this).find('.msg').hide();
jQuery(this).find('.conv').slideDown(300);
}
}, ".tooltip");
jQuery(document).on({
mouseleave: function () {
jQuery(this).find('.conv').slideUp(300);
jQuery(this).find('.msg').show();
}
}, ".tooltip");
.tooltip{
width: 250px;
height: 30px;
border: 1px solid #000;
}
.conv{
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="tooltip">
<div class="conv">Hello again</div>
<div class="msg">Hello world</div>
</div>
【问题讨论】:
-
在您的消息正文中包含相关代码以及提供 jsfiddle 链接通常是体贴的。即使您的代码不再托管在 jsfiddle 上,这也可以确保您的问题在未来仍然有效。
-
当您将鼠标悬停在元素上时,它会立即隐藏
.msg,并且父容器(.tooltip)的高度突然变为0,这意味着鼠标离开元素并触发离开功能。 -
谢谢@WoodrowBarlow,我会记住的(:
-
@JRulle 我明白了你所说的,并为
.tooltipdiv 添加了一个静态高度,但它一直在上下滑动。我错过了什么吗?谢谢! -
stackoverflow.com/questions/11288516/…(只是使用 mouseenter 代替鼠标悬停)