jQuery - 徘徊在孩子身上被触发

时间:2014-07-06 05:22:12

标签: jquery

我有一个640x200 div,里面有一个隐藏的200x100 div。我的目标是在640x200 div跳过时淡出隐藏的div,然后在退出该div时退出。一切正常,但当我将鼠标悬停在子div上时,它会触发下面的悬停功能。

更新我知道当我将鼠标悬停在隐藏div中的元素上时,会触发悬停关闭。

我正在使用此代码:

jQuery("#pstsldcon").hover(function() {
  jQuery("#slidenav").animate({
        opacity: +1
    }, 300)

}, function() {
  jQuery("#slidenav").animate({
        opacity: 0
    }, 300)
});

2 个答案:

答案 0 :(得分:1)

jQuery(function($) {
    $("#pstsldcon").on('mouseenter mouseleave', function(e) {
        if ( e.target === this ) {
            $("#slidenav").animate({ 
                opacity: (e.type === 'mouseenter' ? 1 : 0) 
            }, 300);
        }
    });
});

答案 1 :(得分:0)

您还需要将hover侦听器附加到隐藏的<div>,并捕获传递给它的Event。这样,您可以防止它冒泡到父<div>,从而不会触发悬停。

你想要使用类似的东西:

function(e) {
    e.stopPropagation();
}

隐藏<div>