2012-12-04 69 views
0

此代码在Firefox中工作,但不在Chrome v.23中工作。 当我在调试器中跟踪代码时,一切正常,但Chrome不改变类。有任何想法吗?jquery删除类不在铬中工作

$(document).scroll(function() { 

    $('a.nav').each(function() { 

     var divTop = $('#' + this.title).offset().top; 
     var distance = divTop - $("html").scrollTop(); 
     if (distance > 210 && distance < 255) { 

      $('a.active').removeClass('active'); 
      $(this).addClass('active'); 

     } 
    }); 
}); 
+0

但是addClass()和removeClass()在我的铬合金中工作得很好 – Dineshkani

+0

你可以重新创建问题并在http://jsfiddle.net/ –

+0

上分享代码哟,代码将会是一个性能问题。你应该看看节流的滚动。如果你发现一个匹配的活动,你应该退出每个循环。而且你不应该继续查找html的scrolltop,在每个页面之外做。 – epascarello

回答

0

问题是针对$(“html”)的scrolltop。

看到这个SO螺纹:jQuery scrollTop() doesn't seem to work in Safari or Chrome (Windows)

见什么实际发生的与您的方案,即细节的第二个答案尝试使用$(“身体”)

无论是前两种解决方案应该工作对你来说,虽然。

+0

谢谢! 用$(“body,html,document”)替换$(“html”)并且在Firefox和Chrome中正常工作。 –