2012-01-30 12 views
14

fancybox (2.x)에서 정말 이상한 문제가 있습니다. 나는이 스크립트를 오랫동안 사용하고 있었지만 이전에는 그러한 문제를 경험하지 못했습니다.잡히지 않은 TypeError : Object [object Object]에는 "fancybox"메서드가 없습니다

그래서, 나는 웹 사이트가 : http://tinyurl.com/6mx7an8 및 설명서는 JS 콘솔이 나에게 오류

Uncaught TypeError: Object [object Object] has no method 'fancybox'

당신에게 내가 뭘 잘못 어떤 생각을 가지고 있습니다 제외한 말한대로 나는 모든 JQuery와/fancybox 파일을 포함 시켰습니다 ? 어떤 도움을 주시면 감사하겠습니다 :)

답변

53

귀하의 웹 사이트에는 몇 가지 문제점이 있습니다. 당신은 2 회 하나의 jQuery 라이브러리를 포함하고 있습니다

  1. 전에있는 추가 플러그인이 두 번째 jQuery 라이브러리에 포함 클리어되기 때문에 JS 플러그인 fancybox를 포함한 후.
  2. $을 덮어 쓰는 다른 라이브러리가 있으므로 $jQuery의 별칭이 아니기 때문에 코드가 작동하지 않습니다. jQuery.noConflict()을 사용하면 같은 변수 인 $을 사용하는 페이지의 다른 라이브러리와의 충돌을 피할 수 있습니다.
+5

그래, 그것은 jQuery 라이브러리가 포함 기인했다 포함 여부를 확인합니다. 감사 ! – mbajur

+1

예, 고맙습니다. 고맙습니다. +1 – Sam

+0

덕분에 도와 주셨습니다. – doniyor

6

jQuery가 머리 꼭대기 근처에서 한 번 두 번 포함 된 것처럼 보입니다.

1

jquery와 jquery postmessage 플러그인을 동일한 자바 스크립트 파일에 추가 한 내 웹 사이트에 CSS 통합 스크립트가 있습니다.

그래서 위의 오류가 발생했습니다.

jquery postmessage를 통합하지 않고 별도로로드 했으므로 오류가 발생하지 않았습니다.

2

나는 비슷한 문제가있었습니다. 어떻게 든 jQuery가 두 번로드되고있었습니다. 뭔가 테스트를하는 동안 밝혀졌지만 블록에 jquery를로드하기 위해 drupal_add_js 행을 추가했으나 비활성화 된 블록에서 Drupal은 여전히 ​​비활성화 된 블록에서 PHP를 평가했습니다.

블록에서 drupal_add_js 행을 제거하면 jQuery가 페이지 당 한 번씩 잘로드됩니다. 내가이 코드

<script type="text/javascript"> 
    (function($) { 
     $(document).ready(function() { 
      $("a#fancyBoxLink").fancybox({ 
       'href' : '#popupvid', 
       'titleShow' : false, 
       'transitionIn' : 'elastic', 
       'transitionOut' : 'elastic' 
      }); 

     }); 
    })(jQuery);  
</script> 
0

는 주요 라이브러리에 포함 할 수있다 다운로드하는 동안 예를 들어 jquery.ui.sortable.js를 들어 JQuery와 - ui.js에 포함하고 내가 추가 다시 그것은 나를 위해 오류를주고 있었다.

스크립트 유형 = "텍스트/자바 스크립트"SRC = "공급 업체/JS/JQuery와 - ui.js">

스크립트 유형 = "텍스트/자바 스크립트"SRC = "공급 업체/JS/jquery.ui.sortable 의 .js ">

때문에 하위 라이브러리 (내가 그것을 발견하지 않았다)를 두 번

0

JQuery와 서브 라이브러리 사용되었다

관련 문제