Fancybox(2.x)には本当に奇妙な問題があります。私はこのスクリプトを何年も使用していましたが、そのような問題は以前に経験したことがありません。
だから、私はウェブサイトを持っています: http://tinyurl.com/6mx7an8 そして、マニュアルが言うようにすべてのjquery/fancyboxファイルを含めましたが、JSコンソールは私にエラーを与えます
Uncaught TypeError: Object [object Object] has no method 'fancybox'
私は何が間違っているのか分かりますか?助けていただければ幸いです:)
Webサイトにはいくつかの問題があります。
$
_をオーバーライドしているライブラリが他にもあります。そのため、_$
_はjQuery
のエイリアスではないため、コードは機能していません。 jQuery.noConflict()
を使用して、同じ変数_$
_を使用するページ上の他のライブラリとの競合を回避できます。JQueryが2回含まれているように見えます。1回目は頭のてっぺんの近く、1回目は下の近くです。
同様の問題がありました。どういうわけか、jQueryは2回ロードされていました。何かをテスト中に判明し、ブロック内のjqueryをロードするdrupal_add_js行を追加しましたが、これは無効にされていましたが、Drupalはまだ無効なブロックでPHP= 。
ブロックからdrupal_add_js行を削除すると、jQueryはページごとに1回正常にロードされました。
私の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>
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">
サブライブラリが含まれているかどうかを確認してください