2016-11-28 2 views
2

크롬에서 "잡히지 RangeError : 최대 호출 스택 크기 초과"오류가 발생합니다. 당신은 당신이 window.scroll 위치의 변화를 야기 slideUp을 수행하는 내부 기능을 스크롤 할 리스너를 추가하고 있기 때문에 여기이 선 $(".close-fixed-header").css('display', 'none');잡히지 않은 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'); 
     } 
    } 
}); 

에서 내 jQuery를 기능

$(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'); 
      } 
     } 
    }); 

입니다. 어떤 inturn이 루프를 일으키고 무한 루프가됩니다.

어디서 오류가 발생합니까? 다른 기회에 따라 요소의 표시 속성을 변경하고 있습니다.

표시 위치를 변경하면 정확히 어떻게됩니까?

CSS 속성에서 어떤 요소에 대해서도 display:none이라고 말하면, 해당 특정 요소는 뷰 트리 또는 렌더링 트리를 벗어납니다. 즉, 브라우저가 특정 요소를보기에서 제거합니다.

그리고 다시 display:block으로 설정하면 트리가 변경되어 요소에 다시 표시됩니다. 보기 hieght와 너비를 변경하고 때로는 스크롤을 발생시킵니다 (부모 크기에 따라 다름).

관련 문제