web-dev-qa-db-ja.com

Uncaught TypeError:オブジェクト[オブジェクトObject]にはメソッド「fancybox」がありません

Fancybox(2.x)には本当に奇妙な問題があります。私はこのスクリプトを何年も使用していましたが、そのような問題は以前に経験したことがありません。

だから、私はウェブサイトを持っています: http://tinyurl.com/6mx7an8 そして、マニュアルが言うようにすべてのjquery/fancyboxファイルを含めましたが、JSコンソールは私にエラーを与えます

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

私は何が間違っているのか分かりますか?助けていただければ幸いです:)

14
mbajur

Webサイトにはいくつかの問題があります。

  1. 追加されたプラグインが2番目のjQueryライブラリのインクルードによってクリアされるため、fancyboxプラグインjsを含める前後にjQueryライブラリを2回インクルードしています。
  2. _$_をオーバーライドしているライブラリが他にもあります。そのため、_$_はjQueryのエイリアスではないため、コードは機能していません。 jQuery.noConflict()を使用して、同じ変数_$_を使用するページ上の他のライブラリとの競合を回避できます。
53
ShankarSangoli

JQueryが2回含まれているように見えます。1回目は頭のてっぺんの近く、1回目は下の近くです。

6
danwellman

同様の問題がありました。どういうわけか、jQueryは2回ロードされていました。何かをテスト中に判明し、ブロック内のjqueryをロードするdrupal_add_js行を追加しましたが、これは無効にされていましたが、Drupalはまだ無効なブロックでPHP= 。

ブロックからdrupal_add_js行を削除すると、jQueryはページごとに1回正常にロードされました。

2
Brad Fellows

私のWebサイトには、同じJavaScriptファイルにjqueryとjquery postmessageプラグインの両方を追加したcss統合phpスクリプトがあります。

そのため、上記のエラーが発生していました。

Jqueryポストメッセージを統合せずに個別にロードしましたが、エラーが表示されなくなりました。

私はこのコードで動作させました

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

        });
    })(jQuery);      
</script>
0
Joseph N.

Jqueryサブライブラリがメインライブラリに含まれている場合があります。たとえば、jquery.ui.sortable.jsをダウンロード中にjquery-ui.jsに含めましたが、再度追加するとエラーが発生しました。

script type = "text/javascript" src = "vendor/js/jquery-ui.js">

script type = "text/javascript" src = "vendor/js/jquery.ui.sortable.js">

サブライブラリが含まれているかどうかを確認してください

0