我有这样的感觉,我的问题是非常愚蠢的,但我无法修复它。我在一个容器中有两个div,其中一个默认隐藏。当鼠标移到父div上时,我想用slideDown
显示隐藏的div,并隐藏另一个div。当我将鼠标从div上移到bottom时,它会很好地工作,但如果我从底部移动鼠标,它会上下滑动一段时间。在这里,我有一个小提琴:jQuery mouseenter/mouseleave问题
[编辑]
我忘了说,我需要这与动态创建的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上仍然适用。 – 2014-09-18 19:38:57
将鼠标悬停在元素上时,它立即隐藏'.msg',父容器('.tooltip')突然变为0的高度,这意味着鼠标离开元素并触发离开函数。 – JRulle 2014-09-18 19:43:54
谢谢@WoodrowBarlow,我会记住这一点(: – Cassandra 2014-09-18 19:49:26