我使用以下jQuery来改变无序列表中元素的类.看来效果似乎不是最有效的方式.有没有更好的方法来写这个?
$(function() { $('nav li a').click( function() { $(this).parent().siblings().children().removeClass('active'); $(this).addClass('active'); }); });
谢谢
小号
解决方法
在这些情况下,将处理程序附加到< li>并从< a>点击
bubble up (默认情况下会发生).然后你的处理程序看起来像这样:
$(function() { $('nav li').click( function() { $(this).addClass('active').siblings().removeClass('active'); }); });
然后在您的CSS中,您只需在< li>
li.active a { color: red; }
另外,如果你有很多< li>你想要使用的元素.delegate()
就像这样:
$('nav').delegate('li','click',function() { $(this).addClass('active').siblings().removeClass('active'); });