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”等。