Javascript 如何动态选择上一个同级元素
我对非标准解决方案的实施存在问题。因此,我的HTML:Javascript 如何动态选择上一个同级元素,javascript,jquery,Javascript,Jquery,我对非标准解决方案的实施存在问题。因此,我的HTML: <a href="#6" id="page-link-6">6</a> <a href="#7" id="page-link-7" class="active">7</a> <a href="#8" id="page-link-8">8</a> 我已选择(活动)链接。当用户在文档顶部滚动时,我需要向previus链接添加相同的(活动)类。此示例具有活动的#page-l
<a href="#6" id="page-link-6">6</a>
<a href="#7" id="page-link-7" class="active">7</a>
<a href="#8" id="page-link-8">8</a>
我已选择(活动)链接。当用户在文档顶部滚动时,我需要向previus链接添加相同的(活动)类。此示例具有活动的#page-link-7。普雷维乌斯6岁。因此,当用户在顶部滚动时,将为#page-link-6添加类“active”。但如果当前活动页面链接为9,如何动态转到8?我希望有人能在这里帮助我。谢谢。找到当前处于活动状态的元素,然后使用jQuerys
.prev()
方法查找“previous”链接。
类似于
$('.active').prev().addClass("active" );
您只需找到
active
链接的next
和previous sibling
,然后向其添加类,如下所示:
包装所有的
$(window).on('scroll',function(){
var activeLink=$('.Links').find('.active');
if($(window).scrollTop() + $(window).height() > $(document).height() - 0)
{
if($(activeLink).prev().length>0)
{
$(activeLink).removeClass('active');
$(activeLink).prev().addClass('active');
}
}
else
{
if($(activeLink).next().length>0)
{
$(activeLink).removeClass('active');
$(activeLink).next().addClass('active');
}
}
});
我不太明白你的问题,但听起来可能对你更好
$('a').on('click', function (e) {
$('a').toggleClass("active");
});
.如果您愿意,可以使用插件:我仍然不确定问题出在哪里。
var activeLink=$('.Links').children().find('.active').removeClass('active');
if($(window).scrollTop() + $(window).height() > $(document).height() - 0)
{
$(activeLink).prev().addClass('active');
}
else
{
$(activeLink).next().addClass('active');
}
$(window).on('scroll',function(){
var activeLink=$('.Links').find('.active');
if($(window).scrollTop() + $(window).height() > $(document).height() - 0)
{
if($(activeLink).prev().length>0)
{
$(activeLink).removeClass('active');
$(activeLink).prev().addClass('active');
}
}
else
{
if($(activeLink).next().length>0)
{
$(activeLink).removeClass('active');
$(activeLink).next().addClass('active');
}
}
});
$('a').on('click', function (e) {
$('a').toggleClass("active");
});