提问者:小点点

如果section有活动类,那么将其id作为类添加到body?


如果你能帮我解决这件事,我将不胜感激。我试图创建一个函数:“如果任何节具有class”active“=>取此节的id然后将其添加到body作为class元素,否则删除”

这是下面的代码,但它不能正常工作,或者当我滚动到下一节时,新类没有被添加,而以前的类被删除。

<body class="">
    <section id="home" class="active">
    </section>

    <section id="about" class="">
    </section>
</body>

if ($('section').hasClass('active')) {
    var dataSection = $('section').attr('id');
    $body.addClass(dataSection.replace('#', '') + '-active');   
} else {
    $body.removeClass('home-active');
}

共2个答案

匿名用户

请尝试在此处使用this

if( $(something).hasClass("active") ){
    var grabId = $(this).attr("id");
    $("body").attr("id", grabId);
}

匿名用户

当您使用始终返回第一节的ID$('section').attr('id')时,您需要在section的内部使用this

$('section').attr('id');

应该是:

$(this).attr('id');

因此它将获得当前节的id,也不需要替换,两行可以合并为:

$body.addClass($(this).attr('id') + '-active');

注意:只要使用选择器,就可以获得活动部分:

$('section.active')

希望这有帮助。

相关问题