JQuery - $가 정의되지 않았습니다.
간단한 jquery click 이벤트가 있습니다.
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
및 site.master에 정의된 jquery 참조.
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
스크립트가 올바르게 해결되고 있는 것을 확인했습니다.마크업과 스크립트를 firebug로 직접 볼 수 있기 때문에 필자는 발견될 것입니다.다만, 다음과 같은 것을 얻을 수 있습니다.
$는 정의되어 있지 않습니다.
그리고 어떤 농담도 통하지 않는다.도 으로 해봤어요.$(document).ready
【jQuery】
이것은 .net 3.5의 MVC 2 앱입니다.저는 확실히 매우 고밀도입니다.구글에서는 어디에서나 파일이 올바르게 참조되고 있는지 확인하라고 합니다.확인하고 다시 확인했습니다.알려주세요!:/
이 에러는, 다음의 3개의 어느쪽인가에 의해서만 발생합니다.
- JavaScript 파일이 페이지에 올바르게 로드되지 않았습니다.
- jQuery의 잘못된 버전이 있습니다.이 문제는 코어 파일을 편집했거나 플러그인이 $ 변수를 덮어썼기 때문에 발생할 수 있습니다.
- 페이지가 완전히 로드되기 전에, 즉 jQuery가 완전히 로드되기 전에 JavaScript가 실행되어야 합니다.
우선, 적절한 콜 스크립트가 무엇인지 확인합니다.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
비동기 또는 지연 속성을 갖지 않아야 합니다.
그런 다음 Firebug net 패널에서 실제로 파일이 제대로 로드되고 있는지 확인해야 합니다.그렇지 않으면 빨간색으로 강조 표시되고 옆에 "404"라고 표시됩니다.파일이 올바르게 로드되고 있는 경우는, 문제가 2번인 것을 의미합니다.
모든 jQuery javascript 코드가 다음과 같은 코드 블록 내에서 실행되고 있는지 확인합니다.
$(document).ready(function () {
//your code here
});
이렇게 하면 jQuery가 초기화된 후 코드가 로드됩니다.
마지막으로 jQuery를 로드하기 전에 플러그인을 로드하고 있지 않은지 확인합니다.플러그인은 "$" 개체를 확장하므로 jQuery core를 로드하기 전에 플러그인을 로드하면 설명한 오류가 발생합니다.
주의: jQuery를 실행할 필요가 없는 코드를 로드하는 경우 jQuery ready 핸들러에 넣을 필요가 없습니다.이 코드는 를 사용하여 분리할 수 있습니다.
jquery 스크립트를 호출하기 전에 스크립트태그가 호출되어 있을 수 있습니다.
<script type="text/javascript" src="js/script.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
이 결과는 $가 정의되어 있지 않습니다.
스크립트 태그 앞에 jquery.js를 붙이면 다음과 같이 동작합니다.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/script.js"></script>
먼저 jQuery 스크립트가 로드되었는지 확인해야 합니다.CDN 또는 웹 사이트의 로컬일 수 있습니다.jQuery를 사용하기 전에 먼저 로드하지 않으면 jQuery가 정의되지 않았음을 알려줍니다.
<script src="jquery.min.js"></script>
이는 HEAD 또는 페이지 바닥글에 있을 수 있으므로 다른 jQuery를 호출하기 전에 로드해야 합니다.
다음 두 가지 솔루션 중 하나를 사용해야 합니다.
(function($){
// your standard jquery code goes here with $ prefix
// best used inside a page with inline code,
// or outside the document ready, enter code here
})(jQuery);
또는
jQuery(document).ready(function($){
// standard on load code goes here with $ prefix
// note: the $ is setup inside the anonymous function of the ready command
});
$(배송료)는 몇 번이고 유의하시기 바랍니다.ready(function(){//code here}), 동작하지 않습니다.
이 jQuery 옆에 </body>
전에 되어 있고, 그 전에 다음 시간 이후에 코드를 실행해야 합니다.window.onload
다음과 같이 합니다.
window.onload = function() {
//YOUR JQUERY CODE
}
`
따라서 모든 자산이 로드된 후에만 코드가 실행됩니다.이 jQuery)는$
가 정의됩니다.
그것을 사용하는 경우:
$(document).ready(function () {
//YOUR JQUERY CODE
});
`
$
jQuery가 로드되기 전에 호출되고 스크립트가 콘솔의 첫 줄에서 실패하기 때문에 아직 정의되지 않았습니다.
나도 똑같은 걸 해봤는데, 내가 가진 게 정말 많았어
type="text/javacsript"
로딩 중이었는데 왜 작동하지 않았는지에 대한 힌트는 더 이상 없었습니다.말할 필요도 없이 철자가 정확해서 고쳐졌다.
보기 및 마스터 레이아웃의 스크립트 섹션을 사용합니다.
뷰에 정의된 모든 스크립트를 뷰의 [스크립트(Scripts)]섹션 안에 넣습니다.이렇게 하면 다른 모든 스크립트가 로드된 후 마스터 레이아웃이 이 명령을 로드하도록 할 수 있습니다.이것은 새로운 MVC5 웹 프로젝트를 시작할 때의 기본 설정입니다.이전 버전은 확실하지 않습니다.
Views/Foo/MyView.cshtml:
// The rest of your view code above here.
@section Scripts
{
// Either render the bundle defined with same name in BundleConfig.cs...
@Scripts.Render("~/bundles/myCustomBundle")
// ...or hard code the HTML.
<script src="URL-TO-CUSTOM-JS-FILE"></script>
<script type="text/javascript">
$(document).ready(function () {
// Do your custom javascript for this view here. Will be run after
// loading all the other scripts.
});
</script>
}
뷰/공유/_Layout.cshtml
<html>
<body>
<!-- ... Rest of your layout file here ... -->
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
스크립트 섹션이 마스터 레이아웃 파일에서 마지막으로 렌더링되는 방법을 확인합니다.
jQuery 라이브러리가 아직 로드되지 않았음을 의미합니다.
jQuery 라이브러리를 풀한 후 코드를 이동할 수 있습니다.
아니면 이런 걸 이용해서
window.onload = function(){
// Your code here
// $(".some-class").html("some html");
};
위와 같이 $ variable의 경합으로 인해 발생합니다.
jQuery에 대해 충돌 없이 보조 변수를 예약하여 이 문제를 해결했습니다.
var $j = jQuery.noConflict();
어디서든 사용할 수 있습니다.
$j( "div" ).hide();
자세한 내용은 이쪽에서 확인하실 수 있습니다.
jquery를 실제로 로드했는지 확인합니다.jquery가 아니라 UI입니다!
<script language="JavaScript"
src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
</script>
jquery의 올바른 스크립트소스는 다음과 같습니다.
<script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
다른 JavaScript 라이브러리를 사용하고 있습니까?이 경우 호환성 모드에서 jQuery를 사용해야 합니다.
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
몇 가지 테스트를 통해 빠른 솔루션을 찾은 후 인덱스 페이지 상단에 추가할 수 있습니다.
<script>
$=jQuery;
</script>
동작은 매우 양호합니다. : )
저도 같은 문제가 있어서
document.addEventListener('DOMContentLoaded', () => {
// code here
});
했을 때도 되며, jQuery가 ,type="text/javascript"
라고 했는데...Javascirpt' jav jav jav jav jav jav jav jav jav);););); ;; )
jQuery가 제대로 로드되지 않는 것 같습니다.어떤 소스/버전을 사용하고 있습니까?
충돌일 "jQuery" 으로 사용해 .$
이 효과가 있다면, 이 방법을 해도 좋습니다noConflict
가 사용하고 있는 다른 코드를 확인합니다.$
깨지지 않아요.
이 오류는 jQuery가 아직 페이지에 로드되지 않았음을 의미합니다.「」를 사용합니다.$(document).ready(...)
그 이 되지 . 를 들어, 어떤 변형도 도움이 되지 않습니다.$
jQuery 입다 j j j j j j.
「」를 사용합니다.window.onload
여기서 작동해야 합니다., 1개의 할 수 .window.onload
. 로직이 되지 않도록 꾸밀 수 원래 로드 로직이 손실되는 것을 방지하기 위해 다음과 같이 원래 기능을 꾸밀 수 있습니다.
originalOnload = window.onload;
window.onload = function() {
if (originalOnload) {
originalOnload();
}
// YOUR JQUERY
};
원래 되어 있던 됩니다.window.onload
, '먹다'를 실행합니다// YOUR JQUERY
.
데코레이터 패턴의 상세한 것에 대하여는, https://en.wikipedia.org/wiki/Decorator_pattern 를 참조해 주세요.
Url을 사용합니다.만족하고 문제가 발생하지 않습니다.
<script src="<%= Url.Content ("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script>
솔루션에는 "마지막으로 확인해야 할 것은 jQuery를 로드하기 전에 플러그인을 로드하고 있지 않은지 확인하는 것입니다.플러그인은 "$" 개체를 확장하므로 jQuery core를 로드하기 전에 플러그인을 로드하면 설명한 오류가 발생합니다.
이것을 회피하기 위해서-
많은 JavaScript 라이브러리는 jQuery와 마찬가지로 $를 함수 또는 변수 이름으로 사용합니다.jQuery의 경우 $는 jQuery의 별칭일 뿐이므로 $를 사용하지 않고도 모든 기능을 사용할 수 있습니다.jQuery와 함께 다른 JavaScript 라이브러리를 사용해야 할 경우 $.noConflict()에 대한 호출로 $의 제어를 다른 라이브러리로 되돌릴 수 있습니다.
나는 한 번 뚜렷한 이유 없이 이 문제를 겪었었다.제가 aspnet 개발 서버를 실행하고 있을 때 로컬에서 발생하고 있었습니다.그것은 작동했고 나는 모든 것을 이전에 작동했던 상태로 되돌렸지만 여전히 작동하지 않았다.Chrome 디버거를 살펴보니 jquery-1.7.1.min.js는 문제없이 로딩되어 있었습니다.정말 혼란스러웠어요.아직 무엇이 문제인지 모르겠지만 브라우저를 닫고 개발 서버를 닫은 후 다시 문제를 해결하려고 합니다.
jquery url을 jquery 코드 상단에 배치하기만 하면 됩니다.
이렇게...
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
저도 같은 문제가 있었습니다.jQuery.js에 대한 참조가 태그에 없었기 때문입니다.내가 그걸 바꾸자 모든 게 작동하기 시작했어.
앤서니
jquery 파일의 정확한 경로가 포함되어 있는지 확인합니다.
<script src="assets/plugins/jquery/jquery.min.js"></script>
페이지 하단에 이것을 추가하면, 이 선언 아래에 있는 모든 JS 함수를 호출해 주세요.
이 코드 테스트를 사용하여 확인합니다.
<script type="text/javascript"> /*** * Created by dadenew * Submit email subscription using ajax * Send email address * Send controller * Recive response */ $(document).ready(function() { //you can replace $ with Jquery alert( 'jquery working~!' ); });
피스!
이 문제를 해결하려면 몇 가지 사항을 확인해야 합니다.
- 기본 Jquery 라이브러리 포함
- 크로스 브라우저 문제 확인
- jquery 코드 상단에 라이브러리 추가
- CDN이 차단되어 있는지 확인합니다.
자세한 내용은 이 블로그를 참조하십시오. 여기를 클릭하십시오.
우리는 같은 문제를 안고 있다.그런데 실수로 폴더 속성을 확인하고 설정을 했는데...
액세스하는 각 폴더의 속성을 확인해야 합니다.
- 오른쪽 클릭 폴더
- '권한' 탭
- 폴더 액세스 설정: OWNER: 파일 생성 및 삭제 GROUP: 파일 액세스 기타: 파일 액세스
이게 해결책이었으면 좋겠는데...
asp.net에서 jQuery를 사용하는 경우 마스터 페이지를 사용하여 jquery 소스 파일을 로드하는 경우 모든 jquery 스크립트 참조 뒤에 헤더 contentplaceholder가 있는지 확인합니다.
jquery 오브젝트가 생성되기 전에 잘못된 순서로 클라이언트 측 코드가 실행된다는 이유만으로 마스터 페이지를 사용한 페이지가 "$ is not defined"를 반환하는 문제가 있었습니다.다음 사항을 확인하십시오.
<head runat="server">
<script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script>
<asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder>
</head>
이렇게 하면 코드가 순서대로 실행되고 하위 페이지에서 jQuery 코드를 실행할 수 있습니다.
내 경우 구글이 호스팅하는 JQuery를 가리키고 있었다.올바르게 포함되어 있었지만, HTTPS 페이지에 접속해, HTTP 를 사용해 호출하고 있었습니다.문제를 수정하면(또는 안전하지 않은 콘텐츠를 허용하면) 바로 부팅됩니다.
모든 것을 시도했지만 아무 결과 없이 스크립트 src 태그를 몸통에서 머리로 옮기는 것만으로 문제를 해결했습니다.
저도 같은 문제가 있어서 원인이 무엇인지 알 수 없었습니다.최근 HTML 파일을 일본어에서 UTF-8로 변환했습니다만, 스크립트 파일은 아무것도 하지 않았습니다.이 과정에서 jquery-1.10.2.min.js가 파손되었습니다(아직 방법을 모르겠습니다).jquery-1.10.2.min.js를 원래 수정으로 교체합니다.
jquery.js 파일을 같은 폴더 또는 html 파일이 있는 하위 폴더에 저장하면 Firebug 문제가 해결됩니다.예를 들어 html이 C:/folder1/ 아래에 있는 경우 js 파일은 C:/folder1/(또는 C:/folder1/folder2 등) 아래 어딘가에 있어야 하며 html doc에서 적절하게 주소를 지정해야 합니다.이게 도움이 되길 바라
같은 문제가 있는데 어떤 경우에도 문제가 해결되지 않습니다.유일하게 기능하는 것은 Site.master 파일의 다음 파일입니다.
<script src="<%= ResolveUrl("~/Scripts/jquery-1.7.1.min.js") %>" type="text/javascript"></script>
<script src="<%= ResolveUrl("~/Scripts/bootstrap/js/bootstrap.min.js") %>" type="text/javascript"></script>
src=" <%= ResolveUrl("")인 경우...컨텐츠 페이지의 jQuery 로드가 올바릅니다.
저도 비슷한 문제가 있었어요.C#MVC 어플리케이션에서는 JQuery가 인식되지 않았습니다.@Scripts를 이동해야 했습니다.내 _Layout.cshtml 파일의 맨 아래에서 섹션의 맨 위로 렌더링("~/bundles/jquery")합니다.또한 비주얼 스튜디오를 사용하는 경우 Nuget 패키지로 Jquery를 캡처해야 합니다.
<head>
@Scripts.Render("~/bundles/jquery")
</head>
언급URL : https://stackoverflow.com/questions/2194992/jquery-is-not-defined
'programing' 카테고리의 다른 글
Tomcat에서 Spring Boot를 시작할 때 사용자 이름과 비밀번호는 무엇입니까? (0) | 2022.10.26 |
---|---|
Python 3.x 반올림 동작 (0) | 2022.10.26 |
Python Maria DB 구문 (0) | 2022.10.26 |
열의 값이 값 집합 목록에 있는 경우 데이터 프레임 행 필터링 (0) | 2022.10.26 |
Laravel passport: 수동으로 액세스 토큰 생성 (0) | 2022.10.26 |