【问题标题】:Jquery removeClass Not WorkingJquery removeClass 不工作
【发布时间】:2011-02-01 21:14:26
【问题描述】:

我的网站在这里:http://treethink.com

我要做的是在 jquery 函数内右侧的新闻行情。该函数立即启动并提取新闻代码,然后按应有的方式收回它。当导航时,它会向 div 添加一个类,然后该函数会检查它是否应该停止提取/收回。这一切都很好。

我遇到的问题是单击关闭按钮后(在内容窗口中),removeClass 将不起作用。这意味着它一直认为窗口是打开的,因此函数内的条件语句不会让它再次提取和收回。通过一个简单的萤火虫检查,它表明该类没有被删除。

这不是它没有找到的 cboxClose id,因为我尝试将其更改为一般的“a”标签,但它仍然无法正常工作,所以它肯定与 jQuery 有关。有人还建议使用快速 alert() 来检查回调是否有效,但我不确定这是什么。

代码如下:

/* News Ticker */

    /* Initially hide all news items */

    $('#ticker1').hide();
    $('#ticker2').hide();
    $('#ticker3').hide();

    var randomNum = Math.floor(Math.random()*3); /* Pick random number */

    newsTicker();

    function newsTicker() {

        if (!$("#ticker").hasClass("noTicker")) {

            $("#ticker").oneTime(2000,function(i) { /* Do the first pull out once */

                $('div#ticker div:eq(' + randomNum + ')').show(); /* Select div with random number */

                $("#ticker").animate({right: "0"}, {duration: 800 }); /* Pull out ticker with random div */

            });

            $("#ticker").oneTime(15000,function(i) { /* Do the first retract once */

                $("#ticker").animate({right: "-450"}, {duration: 800}); /* Retract ticker */

                $("#ticker").oneTime(1000,function(i) { /* Afterwards */

                    $('div#ticker div:eq(' + (randomNum) + ')').hide(); /* Hide that div */

                });

            });

            $("#ticker").everyTime(16500,function(i) { /* Everytime timer gets to certain point */

                /* Show next div */

                randomNum = (randomNum+1)%3;

                $('div#ticker div:eq(' + (randomNum) + ')').show();

                $("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */


                $("#ticker").oneTime(15000,function(i) { /* Afterwards */

                    $("#ticker").animate({right: "-450"}, {duration: 800});/* Retract ticker */

                });

                $("#ticker").oneTime(16000,function(i) { /* Afterwards */

                    /* Hide all divs */

                    $('#ticker1').hide();
                    $('#ticker2').hide();
                    $('#ticker3').hide();

                });

            });

        } else {

            $("#ticker").animate({right: "-450"}, {duration: 800}); /* Retract ticker */

            $("#ticker").oneTime(1000,function(i) { /* Afterwards */

                $('div#ticker div:eq(' + (randomNum) + ')').hide(); /* Hide that div */

            });

            $("#ticker").stopTime();

        }

    }

    /* when nav item is clicked re-run news ticker function but give it new class to prevent activity */

    $("#nav li").click(function() {

        $("#ticker").addClass("noTicker");

        newsTicker();

    });

    /* when close button is clicked re-run news ticker function but take away new class so activity can start again */

    $("#cboxClose").click(function() {

        $("#ticker").removeClass("noTicker");

        newsTicker();

    });

谢谢,

韦德

【问题讨论】:

    标签: jquery class conditional removeclass


    【解决方案1】:

    由于这是“jquery removeClass not working”的热门搜索结果,也许我可以发布此类问题的最常见解决方案。

    不要这样做:

    $('#selector').removeClass('.active');
    

    这样做:

    $('#selector').removeClass('active');
    

    【讨论】:

      【解决方案2】:

      您网站上的代码版本与您在此处复制的不同。

      现场版有:

      $("a").click(function() {
      
          $("#ticker").removeClass("noTicker");
      
          newsTicker();
      
      });
      

      而不是您在此处复制的内容:

      $("#cboxClose").click(function() {
      
          $("#ticker").removeClass("noTicker");
      
          newsTicker();
      
      });
      

      我可以确认实时站点代码没有运行(使用 Chrome 开发者控制台断点检查)。

      另外,考虑将您的 Jquery 升级到最新的 1.4.2,这将发现影响您的代码的任何其他错误。

      【讨论】:

      • 我更新了网站,但无论如何它肯定不起作用。我会尝试更新 jQuery,但我不确定这是否会破坏它,其中有些东西可能取决于特定版本。
      • 似乎无论我将 removeClass 附加到哪个链接都不起作用,我也尝试将 addClass 附加到那里,但它不起作用。这意味着问题不在于链接,也不在于 removeClass...这是其他问题。
      • 你有没有在 Chrome 或 Firebug 中单步调试过你的 JS 代码(我假设 firebug 有 JS 调试)。到处添加断点,看看什么时候运行。我刚才又看了你的网站,但有问题的代码已被注释掉,所以我无法再次测试它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 2014-03-25
      • 2016-01-10
      • 2012-05-06
      相关资源
      最近更新 更多