2014-07-07 3 views
1

저는 JS에 익숙하지 않아 문제가 발생했습니다. 앨범의 결과는 아래에 나와 있습니다.Uncaught TypeError undefined가 함수 익명 함수가 아닙니다.

Uncaught TypeError: undefined is not a function script.js?ver=1.0:12 
(anonymous function) script.js?ver=1.0:12 
n.extend.each jquery.js?ver=1.11.0:1 
n.fn.n.each jquery.js?ver=1.11.0:1 
initialise script.js?ver=1.0:12 
jQuery.ajax.success loader.js?ver=1.0:9 
j jquery.js?ver=1.11.0:1 
k.fireWith jquery.js?ver=1.11.0:1 
x jquery.js?ver=1.11.0:1 
bjquery.js?ver=1.11.0:1 

그러나 페이지를 다시로드하면 모든 것이 작동합니다. 무엇이 문제 일 수 있습니까?

문제가있는 것으로 보이는 script.js 코드 세그먼트 (개발자 도구에서도 볼 수 있음)를 포함 시켰습니다. .php 파일을 포함해야하는지 알려주세요.

/*---------------------------------------------- 
       F L E X S L I D E R 
------------------------------------------------*/ 
jQuery(content+' .slider').each(function(index){ 
    var thisid = jQuery(this).attr('id'); 
     jQuery("#"+thisid+" .flexslider").flexslider({ - This line is causing error 
     controlsContainer: "#"+thisid, 
     animation: "fade", 
     slideshowSpeed: 7000, 
     animationDuration: 600, 
     slideshow: false, 
     directionNav: true, 
     controlNav: true, 
     smoothHeight: true, 
     touch: true, 
     video: true, 
     randomize: false 
    }); //end flexslider 
}); 
+1

오류가 표시되지 않습니다. 오류의 원인이되는 코드 행을 정확히 식별 할 수 있다면 많은 도움이됩니다. 개발자 도구가이를 알려줍니다. – Pointy

+0

귀하의 페이지 *는 "귀하의 Modernizr 버전이 오래되었다는 경고를"rocket.js "에서받습니다. – Pointy

+0

@Pointy Chrome의 개발자 도구에서 script.js의 12 행에 오류가 있음을 알 수 있습니다. 원래 게시물을 편집하고 더 많은 코드를 표시합니다. – user3811284

답변

0

12 번째 줄이 나타나는 이유는 불필요한 공백을 모두 제거하여 script.js 파일을 "압축"하고 있기 때문입니다. 개발자 도구 창의 JS 소스보기의 왼쪽 하단에있는 "예쁜 인쇄"아이콘 (이 모양은 {})을 사용하면 실제로 다음과 같은 문제가 발생하는 코드임을 알 수 있습니다.

jQuery("#" + thisid + " .flexslider").flexslider({controlsContainer: "#" + 
thisid,animation: "fade",slideshowSpeed: 7000,animationDuration: 600, 
slideshow: false,directionNav: true,controlNav: true,smoothHeight: true, 
touch: true,video: true,randomize: false}); 

이 원인은 flexslider 함수가 flexslider 스크립트에서 실제로로드되기 전에 호출하려고 할 가능성이 높습니다. 함수가 호출되기 전에 flexslider 스크립트가로드되었는지 확인하십시오. 그러면이 문제가 해결됩니다.

+0

좋아요, 그 말이 맞는 데요. 내 "결혼식"페이지에 동일한 코드를 사용하면 모든 것이 잘로드됩니다. – user3811284

+0

늦어서 죄송합니다 ... 지금까지 귀하의 의견을 보지 못했습니다. foreach 루프 전체를 jQuery (문서) .ready (함수() {})로 래핑 할 수 있습니다. 이렇게하면 dom이 완전히로드 될 때까지 코드가 실행되지 않습니다. –

관련 문제