Javascript 单击事件时隐藏和显示单击项目

Javascript 单击事件时隐藏和显示单击项目,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我需要根据年份隐藏和显示时间线中的元素 假设在2015年使用clicks,那么如果用户再次单击同一年,它应该隐藏所有it子元素并显示它 我已经根据我的设计修改了以下HTML和CSS,可以在这里找到原始脚本http://codyhouse.co/gem/vertical-timeline/ 我有小提琴 当我单击年份时,它仅隐藏第一个元素,而不是该特定年份块中的所有cd时间线块 这是因为您在当前上下文中使用了.next()。它只针对下一个第一个兄弟姐妹,而不是所有兄弟姐妹。您需要将单击处理程序修改为

我需要根据年份隐藏和显示时间线中的元素

假设在2015年使用clicks,那么如果用户再次单击同一年,它应该隐藏所有it子元素并显示它

我已经根据我的设计修改了以下HTML和CSS,可以在这里找到原始脚本
http://codyhouse.co/gem/vertical-timeline/

我有小提琴


当我单击年份时,它仅隐藏第一个元素,而不是该特定年份块中的所有
cd时间线块

这是因为您在当前上下文中使用了
.next()
。它只针对下一个第一个兄弟姐妹,而不是所有兄弟姐妹。您需要将单击处理程序修改为:

$('.cd-year').click(function(){
  $(this).parent().find('.cd-timeline-block').slideToggle();
});

更新:仅保留第一年选项:

$('.cd-year').click(function(){
   $(this).nextAll().slideToggle();
}).not(':first').click();

您需要像这样使用

$('.cd-year').click(function(){
    $(this).nextAll(".cd-timeline-block").slideToggle();
});
next()将仅获取下一个元素。您应该使用
.nextAll()
来获取所有元素


@KnowledgeSeeker:很高兴它能帮上忙:)我如何在默认情况下最小化所有内容,或者只打开第一年选项。同时我也将尝试
$('.cd year')。单击(function(){$(this).nextAll().slideToggle();})。而不是(':first')。单击()
$('.cd-year').click(function(){
   $(this).nextAll().slideToggle();
}).not(':first').click();
$('.cd-year').click(function(){
    $(this).nextAll(".cd-timeline-block").slideToggle();
});