IT

잡히지 않은 TypeError : undefined는 jquery-min.js로드시 함수가 아닙니다.

lottoking 2020. 8. 14. 08:02
반응형

잡히지 않은 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);.

개별의 파일로 펼쳐지는 잘로드 언어 하나의 개별 파일로 세미콜론이 필요합니다.


파일을 병합하는 순서를 다시 확인해야합니다. 다음과 같은 형식이어야합니다.

  1. jquery.min.js
  2. jquery-ui.js
  3. 로드하는 플러그인
  4. 사용자 정의 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 함수 호출을 확인하십시오.

참고 URL : https://stackoverflow.com/questions/10429838/uncaught-typeerror-undefined-is-not-a-function-on-loading-jquery-min-js

반응형