jQuery代码行不起作用 - 在某处破碎?

时间:2014-05-01 22:34:35

标签: javascript jquery

这是作业的一部分。当我点击国际时,向下滑动ID应激活子菜单,但它不起作用。有什么建议吗?

我已经仔细检查了HTML上的文件链接

$(document).ready(function() {

    $('primary-nav .international').on('click', function(e){
        e.preventDefault();
        $( "#primary-nav .international" ).siblings().removeClass("active");
        $( "#primary-nav .international").toggleClass("active");

        if($( "#primary-nav .international" ).hasClass('active')) {
            if($("#slide-down").hasClass('open')) {
                $('#slide-down .drop.open').hide().removeClass('open');
                $('.drop.international').show().addClass('open');
            } else {
                $('#slide-down .drop').hide();
                $('.drop.international').show().addClass('open');
                $('#slide-down').slide-down(150).addClass('open');
            }
        } else {
            $('#slide-down').slideup(150).removeClass('open');
        }

    });
});

1 个答案:

答案 0 :(得分:0)

第三行错字

$('primary-nav .international')

应该是

$('#primary-nav .international')

基于代码的其余部分

编辑:此外,您应该缓存其中一些选择器,以使您的代码更具可读性,更不容易出现拼写错误,并且速度更快(即使只是一点点)。例如:

$(document).ready(function() {

    $('#primary-nav .international').on('click', function(e){
        e.preventDefault();
        var obj = this;
        $(obj).siblings().removeClass("active");
        $(obj).toggleClass("active");

        if($(obj).hasClass('active')) {
            if($("#slide-down").hasClass('open')) {
                $('#slide-down .drop.open').hide().removeClass('open');
                $('.drop.international').show().addClass('open');
            } else {
                $('#slide-down .drop').hide();
                $('.drop.international').show().addClass('open');
                $('#slide-down').slide-down(150).addClass('open');
            }
        } else {
            $('#slide-down').slideup(150).removeClass('open');
        }

    });
});

那种事情

你也可以做这样的事情

$('.some-child-of-obj', obj)

为您的选择者提供一些背景信息。