Javascript 我如何瞄准下一个';他不是兄弟姐妹吗?
我需要在一些div中添加一个Javascript 我如何瞄准下一个';他不是兄弟姐妹吗?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我需要在一些div中添加一个当月和一个下月类。计划是使用jquery来定位第一个和第二个。一旦我与当月互动,我会将下个月的切换到当月,并将下个月的添加到下一个目标div 我的目标是第一个很好,但似乎无法瞄准下一个: $('.event-month-container').first().addClass("current-month"); $('.event-month-container.current-month').next(".event-month-container").addCla
当月
和一个下月
类。计划是使用jquery来定位第一个和第二个。一旦我与当月互动,我会将下个月的切换到当月
,并将下个月的添加到下一个目标div
我的目标是第一个很好,但似乎无法瞄准下一个:
$('.event-month-container').first().addClass("current-month");
$('.event-month-container.current-month').next(".event-month-container").addClass("current-month");
在使用时编写代码->
-----编辑-----
最终结果是:
Onload第一个div被标记为当前月份的,第二个div被标记为下个月的。当当前月份
到达屏幕顶部时,我会将其设置为固定位置。当next month
到达本月底时,它会将本月推到一边,删除current month
类并将其添加到next month
和将next month
添加到第三个月,依此类推
-----编辑v2-----
html
我需要将第一个事件月容器
定位在四个
div中,将下一个事件月容器
定位在不同的四个
div中。在特定的滚动点,我将切换当前的内容,然后定位下一个事件月容器
。我不清楚是什么工作流是,但是如果您只需要获取第一个,使用它,移动到下一个,等等,您可以使用eq
按索引移动,如下所示:
$('.event-month-container').eq(0).addClass("current-month");
// do something, move on
$('.event-month-container').eq(1).addClass("current-month");
像这样的东西可能有用吗?我真的不知道你想做什么 我会尝试使用以下选择器:
var $current = $('.event-month-container').first();
$current.addClass('current-month');
var $next = $current.parent().siblings('.box.quadruple').find('.event-month-container');
$next.addClass('next-month');
这一切都是关于正确的DOM树遍历。我认为你把它复杂化了。一个月的时间已经是“ID”了,这样你就可以根据当前的时间很容易地计算出下一个月的时间。例如,当前:“2014-04”=>下一个:“2014-05”。只需创建一个快速的单行函数,计算给定当前ID的下一个ID,并将其传递给选择器。稍微不同的方法是,有一个计数器,它会遍历要添加类的元素总数
这是最基本的,因为它只是像移位寄存器一样将一个“thisdiv”“nextdiv”向下移位一行div,当到达末尾时,计数器被重置
如果按正式日期切换,则会出现问题,您必须使用javascript日期函数,以便根据上个月(例如,2月28日,下一个3月1日,下一个6月30日,下一个7月1日)将其切换到适当的“月初”
JS
我投了两张票来结束这件事。为什么?因为它是概念性的,实际上没有任何代码可供任何人使用。这就是为什么我提供了一个jsFiddle问题中的代码应该足以让用户回答上述问题,而无需转到jsFiddle。这个例子应该以最简单的形式来演示这个问题,而不是一堵代码墙。类被添加到加载的第一个和第二个项中。当我滚动这些类到达某个点时,当前将切换到下一个,之后将获得下一个next
类。这不会将下个月的next month
类添加到下个月div@dcp3450抱歉,请使用.sibbins()
而不是.next()
--选中编辑。如果下个月没有活动,则不会按顺序排列。
$('.event-month-container').eq(0).addClass("current-month");
// do something, move on
$('.event-month-container').eq(1).addClass("current-month");
$('.event').click(
function() {
$(this).removeClass("current");
$(this).next().addClass("current");
}
);
var $current = $('.event-month-container').first();
$current.addClass('current-month');
var $next = $current.parent().siblings('.box.quadruple').find('.event-month-container');
$next.addClass('next-month');
var thisdiv=0;
var nextdiv=1;
console.log('---------------------');
$('#clickme').on('click', function(){
console.log(thisdiv, nextdiv);
addmovement(thisdiv, nextdiv);
if(thisdiv == 4)
{
thisdiv = -1;
}
if(nextdiv == 4)
{
nextdiv = -1;
}
++thisdiv;
++nextdiv;
});
function addmovement( thisdiv, nextdiv )
{
$('div').removeClass('thisdiv');
$('div').removeClass('nextdiv');
$('div:eq('+ thisdiv +')').addClass('thisdiv');
$('div:eq('+ nextdiv +')').addClass('nextdiv');
}