2009-11-05 4 views
0

을 디버깅 할 때 나는 그렇게 같은 IMG가 들어있는 부분도 있습니다이미지 만 보여줍니다

<img src="" alt="test" id="chartImage" style="display: none;" /> 

그리고 다음을 포함 내보기에 내 자바 스크립트는 다음과 같습니다 경우

  if ($(this).val() != '') { 
       setTimeout(function() { 
        $('#chartImage').attr("style", "") 
       }, 1); 
      } 

를 I 이미지가 표시되지 않는 시간 제한을 설정하지 마십시오. 그러나 시간 제한을 두지 않고 attr을 설정하기 전에 경고를하면 이미지가 나타납니다. 이상한거야?

답변

2

을 수행 할 수 없습니다. 그렇지 않으면 자바 스크립트는 브라우저가 특정 코드 라인 (일반적으로 HTML <head>)에서 읽는 동안 즉시 해석됩니다. 원하는 DOM 요소 (나중에 <body>에 나타남)는 완전히 작성되지 않은 채로 해석됩니다.

일반적으로 window.onload 이벤트에 함수를 연결하지만, documentready 이벤트를 연결하여 문서로드/빌드가 완료되면 무언가를 실행할 수 있습니다.

<head> 
    <script type="text/javascript"> 
     $(document).ready(init); 

     function init() { 
      // Now you can access any DOM element here. 
     } 
    </script> 
</head> 
0

언제 스크립트를 실행하고 있습니까? DOM을 조작 할 준비가되면이를 실행해야합니다. 보십시오 : 당신은 페이지가로드, 당신은로드 및 전체 DOM 트리를 구축을 완료 페이지를 기다릴 필요가있는 동안 DOM을 통과하려면

$(function() { 
    // do your stuff here 
}); 
+0

좋은 점은 스타일을 제거하려는 시도가 아니라 $ ('# chartImage'). show()를 사용하는 것이 좋습니다. – Lazarus

0

당신이 $('#chartImage').css('display', '');

+0

글쎄, 그것은 분명히 타이밍 문제 일뿐입니다. OP 스타일에 따르면 클리어링 스타일이 도움이되는 것 같습니다. –

관련 문제