2012-09-09 3 views
0

내가 닫는 body 태그 앞에 삽입이 코드가 있습니다이상한 JQuery와 함수 동작

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery('.header-search-form, .hoverbgpfthnailiface ').click(function(e){ 

      var target = e.target; 
      while (target.nodeType != 1) target = target.parentNode; 

      if(target.tagName != 'TEXTAREA'){ 
       jQuery('.header-search-form').css({ 'display' : 'none' }); 
       jQuery('.imgcontainer').show(); 
      } 

     }); 
    }); 
</script> 

문제는 스크립트가 작동하지 않는 것입니다, 나는 콘솔없이 오류를 확인합니다. 이상하게도이 코드를 Chrome 콘솔에 넣으면 완벽하게 작동합니다.

무엇이 잘못 되었나요?

Here은 도움이 될만한 웹 사이트입니다.

제안 사항? 당신이 [$ (문서) .ready 대신 $(window).load의 가정 사용 상기 이외에, 또한 다음 body 태그를 닫기 전에 그것을두고해야하는 경우

+1

적어도 수행 할 작업을 설명 할 수 있습니다. – Alexander

+1

Firefox에서 작동합니다. 다른 브라우저에서 작동하지 않는 브라우저 일 수도 있습니다. 관련 메모에서 외부 JS 참조로 이동하면 캐싱 관점에서 더 나은 성능을 발휘할 수있는 페이지 하단에 JS 톤이 있습니다. – sellandb

+1

이 스크립트의 의도 된 기능에 대해 좀 더 구체적으로 설명해야합니까? –

답변

0

$(document).load 또는 $(window).load 대신 $(document).ready

을 시도,이를 추가 코드 끝에서 스크립트 태그를 닫기 직전 라인 : $(window).trigger('load');

+0

나는 $ (window) .trigger ('load')없이'$ (window) .load'를 시도했다. '그리고 그것은 작동합니다, 고마워요! – agis

+0

나는 window.load를 임의로 트리거하는 것에 반대 할 것을 권합니다. 페이지의 모든 스크립트 (작성자, 라이브러리, 타사 등)가 페이지의 모든 이미지로드를 마친 후에 실행되도록 설정하면 어떻게 될까요? 위 시나리오에서 이미지로드가 완료되었는지 여부에 관계없이 해당 이벤트가 트리거되었습니다. – pdoherty926

+0

그래서'$ (window) .load' 대신에 무엇을 사용 하시겠습니까? – agis