[javascript] 잡히지 않은 ReferenceError : $가 정의되지 않았습니까?

이 코드는 어떻게 발생합니까?

잡히지 않은 ReferenceError : $가 정의되지 않았습니다

전에는 괜찮 았나요?

$(document).ready(function() {
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
    $('#featuredvid > ul').tabs();
});

탭의 결과가 더 이상 닫히지 않습니다.

jQuery는 헤더에서 참조됩니다.

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>



답변

jquery 스크립트에 대한 참조를 먼저 넣어야합니다.

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>


답변

jQuery JavaScript가 포함되기 전에 ready 함수를 호출하고 있습니다. 먼저 jQuery를 참조하십시오.


답변

이것이 나를 위해 해결 한 것입니다. 원래 Google에 가서 CDN 페이지에 제안 된 jQuery에 대한 스 니펫을 복사하여 붙여 넣었습니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

코드 조각은 포함되지 않습니다 HTTP:또는 HTTPS:src속성을하지만 난 그것을 변경할 수 있도록 브라우저, 파이어 폭스, 그것을 필요로 편집이 잘 구글 크롬에 나를 위해 일한

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

그런 다음 효과가있었습니다.


답변

jQuery 플러그인이 브라우저에로드되기 전에 사용자 정의 스크립트가로드되면이 유형의 문제가 발생할 수 있습니다. 따라서 jQuery 플러그인을 호출 한 후에는 항상 고유 한 JavaScript 또는 jQuery 코드를 유지하여 이에 대한 해결책은 다음과 같습니다.

먼저 GoogleApis에서 호스팅되는 jQuery 파일 또는 http://jquery.com/download/ 에서 다운로드 하여 서버에서 호스트 할 로컬 jQuery 파일에 대한 링크를 추가하십시오 .

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

또는 jQuery 용 플러그인. 그런 다음 사용자 정의 스크립트 파일 링크 또는 코드를 넣으십시오.

<script src="js/custom.js" type="text/javascript"></script>


답변

제 경우 .js에는 jQuery 스크립트 링크 앞에 파일 을 넣고 jQuery 스크립트 링크 .js뒤에 파일을 넣으면 문제가 해결되었습니다.

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>


답변

좋아, 내 문제는 달랐다 -Chrome의 문서 보안 모델이었습니다 .

여기에 대한 답변을 보면 $(document).ready()등 함수 를 호출하기 전에 jquery 파일을로드하지 않는 것이 분명했습니다 . 그러나 그들은 모두 올바른 위치에있었습니다.

필자의 경우 이는 안전한 HTTPS 연결을 통해 콘텐츠에 액세스하고 있었기 때문에 페이지는 Google 등에서 CDN 호스팅 데이터를 다운로드하려고 시도한 것입니다. 매번 CDN.

편집 :이 작업을 수행하는 다른 방법은 http : //가 아닌 https : //로 모든 CDN 호스트 항목에 연결하는 것입니다. 그러면 모델이 불평하지 않습니다.


답변

스크립트를 시작하기 전에 라이브러리를 추가 하십시오. 다음 CDN 을 추가 하여 시작할 수 있습니다.

구글 :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

마이크로 소프트

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

jquery

다른 Jquery cdn 버전을 원하면이 링크를 확인 하십시오 .

금후:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});
</script>

워드 프레스 :

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>