离开祖父母div时,Mouseleave触发

时间:2014-10-28 17:37:37

标签: javascript jquery html css drop-down-menu

我在鼠标离开祖父母div时立即触发fadeOut的下拉菜单遇到了一些麻烦,我已经将此问题搜索到了死亡状态并且尚未找到优雅的解决方这是我的代码:link

var main = function() {  
    $('nav').mouseenter(function() {
        $('ul li ul').fadeIn('400');
    });

    $('nav ul li').mouseleave(function(){
        $('ul li ul').fadeOut('400');
    });
}

$(document).ready(main); 

2 个答案:

答案 0 :(得分:1)

DEMO:MY FIDDLE

您需要指定尝试将事件附加到的元素。添加“>”你强迫只将事件附加到该元素的子元素。试试这个:

    var main = function() {
        $('nav').mouseenter(function() {
            $(this).find('ul').fadeIn('400');
        });

        $('nav>ul>li').mouseleave(function() {
            $(this).find('ul').fadeOut('400');
        });
    };

答案 1 :(得分:0)

FIDDLE

$(this).find('ul').fadeOut('400'); 

是正确的$('ul>li>ul').fadeOut('400');无法定位特定的(current)li。

使用以下TAGS分层流程

var main = function() {
        $('nav').mouseenter(function() {
            $('ul li ul').fadeIn('400');
        });

        $('nav ul li').mouseleave(function() {
            $(this).find('ul').fadeOut('400');
        });
    };