如果你能帮我解决这件事,我将不胜感激。我试图创建一个函数:“如果任何节具有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');
}
请尝试在此处使用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')
希望这有帮助。