2016-11-28 12 views
2

クロムで「Uncaught RangeError:Maximum call stack size exceeded」というエラーが表示されます。あなたはwindow.scroll位置の変化を引き起こすslideUpを、やっている内の機能をスクロールするために、リスナーを追加しているので、ここで私のjQueryの関数は、このライン$(".close-fixed-header").css('display', 'none');Uncaught RangeError:最大呼び出しスタックサイズがクロムを超えました

+0

'.css( 'display'、 'none');'の代わりに '.hide()'を試してください。それ以外は、実際に[MCVE](http://stackoverflow.com/help/mcve)を使用することができます。 – Cerbrus

+0

私はjQueryの 'css'がそのようなことを引き起こすとは思わないでしょう(これはスタックオーバーフローエラーです)。 Cerbrusが言ったように、我々は[mcve]が必要です。 –

+0

'scroll'イベントが何回も起動します...私の推測は' .slideUp() 'が実際の原因です –

答えて

1
$(window).scroll(function(){ 
    if ($(this).scrollTop() < 170) { 
     $('#main-nav').css('position', ''); 
     $('#fixed-header-icon').slideUp().addClass('remove'); 
     if ($('.ajelnews').length > 0) { 
      $('.main-nav').removeClass('relative'); 
      $('.main-nav').css('top', ''); 
     } 
     if (!$('#main-nav').hasClass('main-nav')) { 
      $('#main-nav').removeClass("fixed-true"); 
      $(".close-fixed-header").css('display', 'none'); 
     } 
    } 
}); 

から

$(window).scroll(function(){ 
     if ($(this).scrollTop() < 170) { 
      $('#main-nav').css('position', ''); 
      $('#fixed-header-icon').slideUp().addClass('remove'); 
      if ($('.ajelnews').length > 0) { 
       $('.main-nav').removeClass('relative'); 
       $('.main-nav').css('top', ''); 
      } 
      if (!$('#main-nav').hasClass('main-nav')) { 
       $('#main-nav').removeClass("fixed-true"); 
       $(".close-fixed-header").css('display', 'none'); 
      } 
     } 
    }); 

です。どのイントゥーンがループを起こし、無限ループになるか。

ここでは、エラーが発生しています。また、要素の表示プロパティを変更しています。

表示位置を変更するとどうなりますか?

任意の要素のCSSプロパティにdisplay:noneと表示されている場合、その特定の要素はビューツリーまたはレンダリングツリーに表示されます。つまり、ブラウザはその特定の要素をビューから削除します。

そして、それをdisplay:blockに戻すと、ツリーが変更され、要素にビューに戻されます。ビューの高さと幅を変更し、いつかはスクロールを起こします(親のサイズに依存します)。

関連する問題