jquery滚动功能只能工作一次

时间:2014-08-13 13:00:33

标签: javascript jquery

我有以下代码应该检测滚动位置并相应地更改类但由于某种原因它只能工作一次。

    $(document).on('scroll',function() { 
   // Do something  
   var scroll = $(window).scrollTop();
  if (scroll >= 70)    
   {      
     if ($('#head-nav').hasClass('off') ) {     
           $('#head-nav').removeClass('top clearfix off');                     
           $('#head-nav').addClass('top clearfix on');     
           $('#cart').removeClass('cart-on');
           $('#cart').addClass('cart-off'); 
           $('#nav-menu').removeClass('navigation grid-40 pull-30 tablet-grid-25 tablet-pull-25 omega alpha');
           $('#nav-menu').addClass('navigation grid-40 pull-0 tablet-grid-25 tablet-pull-25 omega alpha');
           //$('#cart').css('dislay','none !important');
       }
   }
  else if(scroll < 70)
    {
    if ($('#head-nav').hasClass('on') ) {
           $('#cart').removeClass('cart-off');
           $('#cart').addClass('cart-on');            
           $('#head-nav').removeClass('top clearfix on');
           $('#head-nav').removeClass('top clearfix off');  
           $('#nav-menu').removeClass('navigation grid-40 pull-0 tablet-grid-25 tablet-pull-25 omega alpha');
           $('#nav-menu').addClass('navigation grid-40 pull-30 tablet-grid-25 tablet-pull-25 omega alpha');
       }
  }
      });

您可以查看我的代码here

2 个答案:

答案 0 :(得分:1)

滚动功能正常工作...你没有将课程关闭重新添加回$('#head-nav')...我想这行错误:

    $('#head-nav').removeClass('top clearfix on');
    $('#head-nav').removeClass('top clearfix off');  //? add class not remove?

答案 1 :(得分:1)

滚动&lt; 70 的情况下,您从#head同时删除了关闭(以及 on ) -nav所以第二次测试课程时,你既没有找到 也没有关闭