jQuery“主动”类赋值

我想要完成的就是能够拥有一个无序链接列表,其中单击一个链接,父列表项被分配为“活动”类。 在该列表中单击另一个链接后,它会检查是否已分配“活动”,将其从该列表项中删除,并将其添加到最近单击的链接父列表项中。

例:

第一步 – 用户点击了链接“我是链接二”

 

第二步 – 用户现在点击了“我是链接一个”链接

  

很简单,但男人我打败了我。

假设:UL元素具有类“linksList”。

 $('.linksList li a').click(function() { $('.linksList li').removeClass('active'); $(this).parent().addClass('active'); }); 

像下面这样的东西应该这样做

 $(function() { $('li a').click(function(e) { e.preventDefault(); var $this = $(this); $this.closest('ul').children('li').removeClass('active'); $this.parent().addClass('active'); }); }); 

工作演示

这个问题现在有点老了,但我认为仍有改进空间。

“传统”本地事件绑定:

 $("ul a").click(function(){ $(this).parent("li").addClass("active") .siblings().removeClass("active"); # return false to cancel the default action (eg follow the link): return false; }); 

现在,通过delegate()使用事件委托(jQuery +1.4.2)。 允许您动态添加额外的> li> a,而无需重新绑定事件:

 $("ul").delegate("a", "click", function(){ $(this).parent("li").addClass("active") .siblings().removeClass("active"); # return false to cancel the default action # and prevent it from bubbling (further) up: return false; }); 

将“ul”更改为仅与所需列表匹配的任何内容,例如“.linksList”,“#nav”等。