Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何瞄准下一个';他不是兄弟姐妹吗?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 我如何瞄准下一个';他不是兄弟姐妹吗?

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

我需要在一些div中添加一个
当月
和一个
下月
类。计划是使用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');  
}