잡히지 않은 TypeError : undefined는 jquery-min.js로드시 함수가 아닙니다.
약 5 개의 CSS 파일과 10 개의 Javascript 파일을로드해야합니다.
- HTML 페이지에서 보강로드하면 내 웹 페이지가 제대로로드됩니다.
이제 모든 자바를 위해 필요한 순서대로 모든 CSS를 단일 파일에 연결하고 모든 CSS를 다른 파일에 연결했습니다. 그러나 더 많은 파일로 웹 페이지를 실행하려고합니다.
Uncaught TypeError: undefined is not a function
자바 스크립트 파일에서 jquery.min.js 가로 드되는 줄.
이 문제를 어느 정도 지불해야합니까? 모든 파일을 연결하고 있습니다. 도와주세요.
편집 : Javascript와 CSS를 식별 적으로로드되고 있었던 때 있었던 때 병합했습니다.
이 문제가 여전히 해결되지 않았다고 가정하면 많은 파일이 처리되지 않습니다. 대부분의 jQuery는 (jQuery)
끝나지 않습니다 (jQuery);
.
개별의 파일로 펼쳐지는 잘로드 언어 하나의 개별 파일로 세미콜론이 필요합니다.
파일을 병합하는 순서를 다시 확인해야합니다. 다음과 같은 형식이어야합니다.
- jquery.min.js
- jquery-ui.js
- 로드하는 플러그인
- 사용자 정의 JS
이 솔루션은 저에게 맞는.
; (함수 ($) { // 코드 }) (jQuery);
코드를 클로저 내부로 이동하고 jQuery 대신 $ 사용
위의 솔루션을 https://magento.stackexchange.com/questions/33348/uncaught-typeerror-undefined-is-not-a-function-when-using-a-jquery-plugin-in-ma 에서 찾았습니다.
너무 많이 봉사 한 후에
다른 버전의 jQuery에 대한 두 개의 개의 참조를 동일한 오류가 발생했습니다.
내 마스터 페이지에서 :
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
또한 페이지에서 :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
최근에 Squishit을 사용하여 jQuery Validation 사용 에이 문제 가 발생했습니다. js 오류가 발생했습니다.
"정의되지 않은 것은 함수가 아닙니다."
jquery.validate.min.js가 아닌 축소되지 않은 jquery.validate.js 파일에 대한 참조를 변경하여 수정했습니다 .
@MvcHtmlString.Create(
@SquishIt.Framework.Bundle.JavaScript()
.Add("~/Scripts/Libraries/jquery-1.8.2.min.js")
.Add("~/Scripts/Libraries/jquery-ui-1.9.1.custom.min.js")
.Add("~/Scripts/Libraries/jquery.unobtrusive-ajax.min.js")
.Add("~/Scripts/Libraries/jquery.validate.js")
.Add("~/Scripts/Libraries/jquery.validate.unobtrusive.js")
... more files
예를 들어 Squishit을 추가로 압축 할 때 특정 파일의 축소 된 버전은 @Dustin이 제안하는 것처럼 누락 된 세미콜론 등을 처리하지 않을 수 있으므로 어떤 파일을 사용할 수 있는지 확인할 수 있습니다. 두 배로 압축하고 Squishit이나 묶음을 묶습니다.
아직도이 문제를 해결할 수없는 사람들을 위해 jQuery를 사용할 때 'this'를 '$ (this)'로 변경했습니다.
예 :
$('.icon').click(function() {
this.fadeOut();
});
결정된 :
$('.icon').click(function() {
$(this).fadeOut();
});
함수와 매우 동일한 이름으로 실수로 변수 이름을 지정했을 때 매우 동일한 문제가 발생했습니다.
그래서 이거 :
isLive = isLive(data);
실패, OP의 오류 메시지 생성.
이 문제를 수정하는 것은 위의 줄을 다음과 같이 변경하는 것만 큼 간단합니다.
isItALive = isLive(data);
이 상황에서 얼마나 도움이 좋은지 모르겠지만 문제에 대한 해결책을 찾는 다른 사람들에게 답변을 제공하기로 결정했습니다.
예, js 라이브러리에서 축소하지 않고 변경하는 것도 수정했습니다.
예를 들어 태그에서 다음을 변경합니다.
<script type="text/javascript" src="js/jquery.ui.core.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.min.js"></script>
<script type="text/javascript" src="js/jquery.ui.rcarousel.min.js"></script>
에 대한 :
<script type="text/javascript" src="js/jquery.ui.core.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="js/jquery.ui.rcarousel.js"></script>
축소되지 않은 상태로 'min'을 종료합니다.
아이디어 주셔서 감사합니다.
기억하세요 : 자바 스크립트는 대소 문자를 구분합니다.
내 코드가 원활하게 실행될 것이라고 확신하는 경우가있었습니다. 그러나 여전히 오류가 발생하여 Chrome 의 Javascript 콘솔 을 확인하여 그것이 무엇인지 확인했습니다.
내 오류 라인은
opt.SetAttribute("value",values[a]);
그리고 동일한 오류 메시지가 나타납니다.
Uncaught TypeError: undefined is not a function
위의 코드에 잘못된 것은 없지만 실행 중이 아닙니다. 거의 한 시간 동안 문제를 해결 한 다음 실행중인 다른 코드와 비교했습니다. 내 오류는로 설정되어 SetAttribute
있다는 것 setAttribute
입니다.
방금 IcedCoffeeScript에서 다음 코드로 동일한 메시지를 받았습니다.
f = (err,cb) ->
cb null, true
await f defer err, res
console.log err if err
이것은 일반 ICS 코드처럼 보였습니다. 나는 await-defer 구조를 일반 CoffeeScript로 펼쳤습니다.
f (err,res) ->
console.log err if err
정말 무엇 앞으로 일어날 것은 내가 함수 (2 개 매개 변수) 1 개 콜백 함수를 전달하는 노력이었다 f
두 개의 매개 변수를 예상하고, 효과적으로 설정하지 않는 cb
내부 f
컴파일러가 제대로보고, undefined is not a function
.
실수는 콜백 스타일의 상용구 코드를 맹목적으로 붙여 넣었 기 때문에 발생했습니다. 매개 변수를 전달할 f
필요가 err
없으므로 다음과 같아야합니다.
f = (cb) ->
cb null, true
f (err,res) ->
console.log err if err
일반적인 경우에는 일치하는 arities에 대한 함수 서명과 호출을 다시 확인하는 것이 좋습니다. 오류 메시지의 호출 스택은 유용한 힌트를 제공 할 수 있어야합니다.
특별한 경우에는 병합 된 파일에 다른 서명이나 함수를 보유하는 전역 변수에 대한 할당으로 두 번 나타나는 함수 정의를 찾는 것이 좋습니다.
주석을 달았는지 확인하십시오. 때때로 복사하여 붙여 넣을 때 "/ *!"를 생략합니다.
또한 콘솔로 이동하면 오류 목록이 표시되며 한 번에 하나씩 가져와야합니다. "Uncaught SyntaxError : Unexpected token *"이 표시되면 js 파일을 읽고 있으며 첫 번째 줄을 지나지 않는다는 의미 일 수 있습니다.
/ *! * jquery.tools 1.1.2-웹용 누락 된 UI 라이브러리 * * [tools.tabs-1.0.4, tools.tooltip-1.1.2, tools.scrollable-1.1.2, tools.overlay-1.1.2, tools.expose-1.0.5] * * Copyright (c) 2009 Tero Piirainen * http://flowplayer.org/tools/ * 생성 된 파일 : Wed Oct 07 09:40:16 GMT 2009 * /
저 같은 바보가있는 경우에는 간단한 문제를 잊었 기 때문에이 답답한 문제가있었습니다.
new
새 개체를 인스턴스화하기 전에 키워드.
하나의 콜백 매개 변수 만 예상하는 jquery 함수에 실수로 너무 많은 매개 변수를 전달했을 때이 문제가 발생했습니다.
기타 문제 해결 : 추가 매개 변수에 대한 모든 jquery 함수 호출을 확인하십시오.
'IT' 카테고리의 다른 글
Python에서 다른 목록으로해야 할 일이 있습니까? (0) | 2020.08.14 |
---|---|
C / C ++ 매크로 링크 연결 (0) | 2020.08.14 |
Mac OS X Leopard 키 바인딩의 Emacs (0) | 2020.08.14 |
Django에서 다른 설정으로 단위 테스트하는 방법은 무엇입니까? (0) | 2020.08.14 |
.NET의 URL에서 페이지를 읽는 가장 쉬운 방법 (0) | 2020.08.14 |