2010-04-29 2 views
1

이것은 코드입니다.jQuery, 준비 중 요소 숨기기가 항상 페이지로드로 이동합니다. 어떻게 피할 수 있습니까?

내가 대신 display:none을 적용하는 display:none;

$(document).ready(function() { 
    $("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open"); 
}); 
+2

CSS를 사용하면 내 제안이되지만 말할 수는 없습니까? – cletus

+0

#leftNav div에 모든 CSS를 설정하거나 표시하지 않을 수 있습니까? 없음? – OneNerd

답변

1

을 적용 할 수 없습니다, ($.hide()를 호출)하는 방법을 같은 크기로 설정 빈 DIV에 숨기려고하는 항목 교체에 대한 어떤로 너 숨기려고하는거야?

1

종종 display:none;의 좋은 대안은로드시 불투명도를 0으로 설정하는 것입니다.

$("#LeftNav li.navCatHead").not(":first").siblings("li").css('opacity','0').end().end().first().addClass("open"); 

그러나 선택기를 찾을 수와 같은 긴 문자열을 가지고보다는, 그냥 하나 하나에 새 클래스를 추가하고 훨씬 더 빨리 될 것 같은 페이지로드 opacity: 0;에 그것을 설정합니다.

2

왜 "display : none"을 설정할 수 없습니까? 시나리오에 대해서는 잘 모르겠지만 처음에는 show list 대신 약간의 작업 흐름을 반대로 바꿀 수 있습니다. 먼저 특정 목록을 숨기고 hide (display : none) 목록을 시도한 다음 특정 항목을 표시하십시오. 어떤 조건에 따라.

이렇게하면 "show then disappear"이라는 요소로 끝나지 않습니다.

1

준비 문서를 기다리지 마십시오. 닫는 본문 태그 앞에 페이지의 맨 아래에 또는 jQuery 코드를 문제의 요소 바로 뒤에 배치 할 수 있습니다.

  <!-- ...other code... --> 
      <li>Sibling</li> 
     </ul> 
     <script type="text/javascript"> 
      // this should work... 
      $("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open"); 
     </script> 
     <div class='content'>more stuff.</div> 
    </body> 
</html> 
+0

좋은 소리, 나는 이것을 해봐야 해! – adardesign

관련 문제