5

私が取り組んでいる Web サイトに問題があり、fancybox を YouTube クリップでテストして正しく動作させることができないようです。

これが私のスクリプトファイルです。jQuery 1.9 で 2.1.4 を使用する

script.js

var $j = jQuery.noConflict();

$j(document).ready(function(){

    $j('.flexslider').flexslider({
    animation: "slide"
  });

    $j('.fancybox-media').fancybox({
        openEffect  : 'none',
        closeEffect : 'none',
        helpers : {
            media : {}
        }
    });

});

flexslider は問題なく動作しますが、fancybox-media には問題があります。リンクをクリックすると、ファンシーボックスウィンドウでメディアファイルを開く代わりに、リンクが開きます。

クロムコンソールの中でそれは言っています

Uncaught TypeError: Cannot read property 'helpers' of undefined jquery.fancybox-media.js:88
(anonymous function) jquery.fancybox-media.js:88
(anonymous function) jquery.fancybox-media.js:196

リンクは次のように定義されます。

<h2><a class="fancybox-media" href="http://www.youtube.com/watch?v=czQipWJA8EU">Watch This Video</a></h2>

また、開発中のサイトを見たい場合は、www.miems.co で見つけることができます。

どんなアイデアでも教えてください。敬具、デビッド

4

3 に答える 3

10

何百ものビューがあり、まだ答えがないことを考えると

$('.fancybox').fancybox();

fancybox から他のコードを呼び出す前に呼び出す必要があります

私の場合、JavaScript が実行される順序を次のように変更しました。

<script type="text/javascript" src="/static/js/jquery.fancybox-thumbs.js?v=1.0.7"></script>
<script type="text/javascript" src="/static/js/jquery.fancybox.js?v=2.1.5"></script>

に:

<script type="text/javascript" src="/static/js/jquery.fancybox.js?v=2.1.5"></script>
<script type="text/javascript" src="/static/js/jquery.fancybox-thumbs.js?v=1.0.7"></script>
于 2013-08-31T18:17:32.830 に答える
1

ページに jquery.fancybox.js を愚かにも 2 回含めたため、まったく同じエラーが発生しました。2 番目の呼び出しを削除するだけで、問題は解決するはずです。

于 2016-01-18T18:08:33.737 に答える