jquery remove / add class script不起作用

时间:2013-12-09 20:15:42

标签: jquery

以下是我遇到问题的jQuery脚本:

$(document).ready(function(){
    $("li").click(function(){
        $(".active").removeClass("active")
        $(this).addClass("active")
    });
});

脚本应该使您所在的链接/页面的背景颜色 通过使用为类(。)激活的css激活为橙色 该脚本应从活动的链接中删除活动的类,并将该类添加到单击的链接。

关于脚本应如何执行此操作: 如果单击li,那么具有活动类的东西将删除它的类, 比点击的东西(这个)会让课程活跃起来。 我用过这个,但似乎不起作用

4 个答案:

答案 0 :(得分:1)

我不知道它是否是复制粘贴错误,但你缺少分号:

$(document).ready(function(){
    $("li").click(function(){
        $(".active").removeClass("active");
        $(this).addClass("active");
    });
}); 

更新:根据我对此回复的评论,我觉得我应该补充一点,因为代码全部在一行,我说缺少分号。如果不是这种情况,则分号不会解决问题。话虽如此,上面的代码没有其他问题,所以错误必须在页面上的其他地方没有提供足够的信息来解决它。

答案 1 :(得分:0)

Try this:

<强> JS

  $(document).ready(function(){ 
      $("li").click(function(){ 
         $(this).parent("ul").find("li").removeClass('active');
         $(this).addClass("active");
      }); 
   });

另外,不要忘记在行尾添加;

答案 2 :(得分:0)

我不是jQuery专家,但是,如果我理解你的问题,这应该是......它确实对我有用:

$('li').each(function(){

    $(this).click(function(){
        DeselectCurrent();        
        $(this).addClass("active");
    });
});

var DeselectCurrent = function() {
    $('li').each(function(){
        var attr = $(this).attr('class');            

        if (typeof attr !== 'undefined' && attr !== false) {
            $(this).removeClass("active");
        }
    });
};

是的,我认为它有点笨拙,并不像它应该的那样有效,但它可以解决你想要做的事情。

jsfiddle示例

答案 3 :(得分:-1)

您的代码应如下所示:

$(function () {
    $("li").click(function () {
        $(".active").removeClass("active");
        $(this).addClass("active");
    });
});

如果我理解你要做什么,那么这应该有用。

我确实建议你把问题写得更好一些,因为乍看起来有点难以理解。此外,在询问javascript / jQuery时,提供jsFiddle通常是一个不错的选择。