我有這樣的感覺,我的問題是非常愚蠢的,但我無法修復它。我在一個容器中有兩個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