父亲的Event.prevent但不是子li的

时间:2014-03-04 10:28:27

标签: navigation

我有一个3级导航和event.preventDefaul();应该只影响导航的第一级但它会影响所有3个级别,我该如何改变呢?

JS代码

var $topLevelItems = $("nav > ul > li");
    $topLevelItems.click(function(event) {
event.preventDefault();
        if (!$(this).hasClass('selected')) {

            $topLevelItems.removeClass('selected')
                .find('.level_2')
                .slideUp('slow');

            $(this).addClass('selected')
                .find('.level_2').fadeIn('slow')
                .slideDown('slow',function(){
                    $('#nav').animate({height:$topLevelItems.find('.level_2:visible').height()+55},200);
                });
        }
    });

1 个答案:

答案 0 :(得分:0)

当我尝试这个时,函数不会启动:

var $topLevelItems = $("nav > ul > li");
    $topLevelItems.click(function(event) {
            if (this !== event.target) { 
            return; 
            event.preventDefault();
            }
        if (!$(this).hasClass('selected')) {

            $topLevelItems.removeClass('selected')
                .find('.level_2')
                .slideUp('slow');

            $(this).addClass('selected')
                .find('.level_2').fadeIn('slow')
                .slideDown('slow',function(){
                    $('#nav').animate({height:$topLevelItems.find('.level_2:visible').height()+55},200);
                });
        }
    });
相关问题