无序列表,从<li>中删除活动状态并转移到另一个</li>

时间:2012-05-22 19:58:11

标签: jquery css

如果标题令人困惑,我很抱歉,这就是我要做的事情。我有一个<ul>,当我点击其中一个<li>时,我想这样做,该项目变为id="active",删除了具有该ID的旧<li>项从而获得id="active"的CSS。我希望这是有道理的。这是我的代码:http://pastebin.com/20i6h5cs

提前致谢!

3 个答案:

答案 0 :(得分:2)

为此目的,您应该使用class而不是id(jQuery也可以更轻松)。它看起来像这样:

$("ul").on("click", "li:not(.active)", function() {
    $(this).addClass("active").siblings().removeClass("active");
});

上面安装ul上的委托处理程序,只要没有单击类的后代li,就会调用该处理程序。处理程序将类添加到单击的元素中,并将其从所有兄弟元素中删除。

答案 1 :(得分:0)

这是一个让你开始的小提琴:

http://jsfiddle.net/avvKe/

答案 2 :(得分:0)

我会回应Jon的建议,即你使用的是课程,而不是ID。但是,如果你坚持要去ID路线,那就是这样的:

$('.ulSideNav li').click(function(e) {
    e.preventDefault();
    document.getElementById('active').id = null;
    this.id = 'active';
});

应该这样做。