.addClass没有在页面加载时添加类

时间:2015-11-16 16:25:05

标签: javascript jquery

这是我的代码:

jQuery(function($){
    // ADD CLASS ON LOAD FUNCTION SHOULD WORK HERE

    (function(){
      $('.block-layered-nav dt').addClass('closed');
    });

    $(".block-layered-nav dt").click(function(){
        if($(this).next("dd").css("display") == "none"){
            $(this).next("dd").slideDown(200);
            $(this).removeClass("closed");
        } else {
            $(this).next("dd").slideUp(200);
            $(this).addClass("closed");
        }
    });
});

有人可以注意到这个问题吗?

第一个函数应该将类'closed'添加到dt元素中,但是当页面加载时不是这种情况。

其他代码只是简单地切换类,这很好。

2 个答案:

答案 0 :(得分:6)

你只是定义一个匿名函数,但从不调用它:

(function(){
    $('.block-layered-nav dt').addClass('closed');
});

只需将上述内容更改为:

$('.block-layered-nav dt').addClass('closed');

答案 1 :(得分:1)

为什么不简单地写

$('.block-layered-nav dt').addClass('closed');

添加课程?为什么是自包含函数(顺便说不调用)