【问题标题】:setInterval issues with Chrome and FirefoxChrome 和 Firefox 的 setInterval 问题
【发布时间】:2012-02-14 17:59:18
【问题描述】:

我正在处理的网站有问题。它不仅是这个站点,而且是我使用 Jquery 滑块制作的另一个站点。他们都有不同的插件。问题是,当您更改标签时,当您返回时,滑块会变得非常疯狂……尤其是在 Chrome 中。该网站是http://www.firedogpr.com/index.php。我已经阅读了有关此问题的信息,但我不是 JS 向导,因此将不胜感激。

由于某种原因,它目前根本无法在 Windows 中运行。我也在研究这个。

我基本上是从http://www.snowdenindustries.com 获取代码并对其进行了修改。这是可能是问题的js的sn-p

if ($("#mainSlide").length>0) {
    $("#mainSlide div.slide").hide();
    $("#mainSlideNav li a:first").addClass("cur");
    $("#mainSlide div.slide:first").show();


    $("#mainSlideNav li a").click(function() {
        $("#mainSlideNav li a").removeClass("cur");
        $(this).addClass("cur");
        $("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
        var activeTab = $(this).attr("href");
        $(activeTab).fadeIn(1200).addClass("cur");
        return false;
    });

    function slideTimer() {
        if (!($('#mainSlideNav li a.cur').parent().next().children("a").length>0)) {
            $("#mainSlideNav li a").removeClass("cur");
            $("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
            $("#mainSlideNav li a:first").addClass("cur");
            $("#mainSlide div.slide:first").fadeIn("slow").addClass("cur");
        } else {
            var nextTab = $('#mainSlideNav li a.cur').parent().next().children("a").attr('id');
            var nextDiv = $('#mainSlide div.slide:visible').next().attr('id');
            $("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
            $("#mainSlideNav li a").removeClass("cur");

            $("#"+nextTab).addClass("cur");
            $("#"+nextDiv).fadeIn("slow").addClass("cur");
        }
    }
    var miniCount = setInterval( slideTimer, 5000);
    $("#mainSlideNav li a, #mainHeader").mouseenter( function(){
        clearInterval(miniCount);});
    $("#mainSlideNav,  #mainHeader").mouseleave( function(){
        clearInterval(miniCount);
        miniCount = setInterval(slideTimer, 5000);});
}

【问题讨论】:

  • setinterval() 在这里起什么作用???
  • 更新帖子。抱歉各位,按输入太快了。
  • @DoctypeDesigner:不正确缩进的代码不会鼓励其他人帮助你
  • 对不起!我通常不在这里发布代码......我希望我做得对吗?在我看来还可以。编辑器在这方面似乎有点混乱。
  • @DoctypeDesigner:我修好了!但仍然很难说问题出在哪里。我去了网站,不知道我应该怎么做才能重现这个问题。没有标签

标签: javascript jquery firefox google-chrome setinterval


【解决方案1】:

jQuery 文档明确规定不要使用间隔计时器中的 jQuery 动画 API(如 fadeIn),正是因为 jQuery 使用的 API 暂停在后台选项卡中,因此您最终会同时运行多个淡入。

至少在您使用的旧 jQuery 中;我相信当前的 jQuery 解决了这个问题。

【讨论】:

  • 谢谢...我会尝试一个新的 jQuery,看看它是否有帮助。我很困惑,因为斯诺登行业根本不会发生这种情况,当我把它剥离到我需要的最基本部分时,它就开始这样做了。
  • 所以它是一个过时的jquery...得到了最新的,现在一切都很好:)。仍然有 Chrome 错误,它不会加载背景图像,但我知道这是 Chromium 问题。我也不知道我忘记将 main.js 文件覆盖为最近的更改,Chrome 为我保存了缓存,我没有清除它,所以它似乎对我有用,但对你们不适用,对此感到抱歉。
猜你喜欢
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 2011-05-29
  • 2010-11-29
  • 2011-10-13
  • 2014-02-27
相关资源
最近更新 更多