Jquery 添加和删除活动类

Jquery 添加和删除活动类,jquery,Jquery,我知道这应该是简单的,已经被涵盖了一百万次,但我可以;我似乎没法让它发挥作用 是您的基本脚本使您在列表中单击的最后一个链接成为“活动”链接,并将“活动”类添加到其中 HTML 应该行得通,根本不行 编辑此代码没有问题,可以正常工作。文档中它上面有一段代码阻止它工作。请尝试更具体地使用选择器: $(document).ready(function() { $('#projectsList li a').click(function(){ $('.activeProject

我知道这应该是简单的,已经被涵盖了一百万次,但我可以;我似乎没法让它发挥作用

是您的基本脚本使您在列表中单击的最后一个链接成为“活动”链接,并将“活动”类添加到其中

HTML

应该行得通,根本不行


编辑此代码没有问题,可以正常工作。文档中它上面有一段代码阻止它工作。

请尝试更具体地使用选择器:

$(document).ready(function() {
    $('#projectsList li a').click(function(){
         $('.activeProject').removeClass('activeProject')
         $(this).addClass("activeProject");
    });
});

我不知道怎么了。此代码适用于其他人…

我看不出有任何问题

看:

它正在工作


错误一定是在其他地方

我尝试了一下,效果很好,代码中没有任何错误:

也许您的输出处理器更改了ID#projects列表?可能发生在.NET或某些Java框架中

尝试分配class.projectsList,看看它是否有效

我也可以推荐活动授权的做法:

$('.projectsList').click(function(evt){
  if ( evt.target.nodeName == 'A' ) {
    var elm = $(evt.target);
    if ( elm.hasClass('activeProject') ) { return; }
    $('.activeProject').removeClass('activeProject');
    $(evt.target).addClass('activeProject');
  }
});
(简写)

更新
Sam,如果您还没有尝试过,我建议您使用JavaScript Lint。使用它或在编辑器中(有它的捆绑包和插件)可以让您轻松发现JavaScript代码中的错误和警告。

我强烈建议使用变量保存对activeProject的引用。如果您有较大的页面,这将节省大量处理时间,因为搜索DOM可能会很昂贵。它还将使它更不容易出现像您遇到的问题(选择错误的元素)


它很好用。请看这里:您必须有其他可能失败的javascript。您如何测试结果?也许这个bug在你的CSS文件中,所以你没有得到视觉反馈。这是我尝试的第一件事。我觉得更一般一些会对lol有帮助。嗯,代码看起来是正确的。你能发布整个页面和JS文件吗?也许检查一下CSS?似乎没有问题。我以前从未见过鲑鱼的颜色(我也不知道它的存在)!我是从书上知道的。你可以用那个颜色的名字在CSS中声明颜色是的,我错过了一个
在它前面的代码上。花了一个小时看错误的部分:(
$(document).ready(function() {
    $('#projectsList li a').click(function(){
         $('.activeProject').removeClass('activeProject')
         $(this).addClass("activeProject");
    });
});
$('.projectsList').click(function(evt){
  if ( evt.target.nodeName == 'A' ) {
    var elm = $(evt.target);
    if ( elm.hasClass('activeProject') ) { return; }
    $('.activeProject').removeClass('activeProject');
    $(evt.target).addClass('activeProject');
  }
});
$(document).ready(function() {
        var active = $('#projectsList a.activeProject');
        $('#projectsList a').click(function() {
            if(active) $(active).removeClass('activeProject');
            $(this).addClass("activeProject");
            active=this;
        });
    });