Fancybox不起作用

时间:2013-01-04 18:54:42

标签: javascript jquery fancybox

似乎无法让Fancybox工作 - 它只是链接到第一张照片。我收到错误:未捕获的typeerror对象#对象没有方法'fancybox'。

HTML

<a class="fancybox" data-thumbnail="http://staging.timeoutchicago.com/sites/timeoutchicago.com/files/imagecache/timeout_slideshow_player_thumbnail/P1010923.JPG" href="http://staging.timeoutchicago.com/sites/timeoutchicago.com/files/imagecache/timeout_492x330/P1010923.JPG"><img alt="" src="http://staging.timeoutchicago.com/sites/timeoutchicago.com/files/toclogo.jpg"></a>

<br />

<a class="fancybox" data-thumbnail="http://fancyapps.com/fancybox/demo/2_s.jpg" href="http://fancyapps.com/fancybox/demo/2_b.jpg"></a>​

的Javascript

<script type="text/javascript">
    $(document).ready(function() {
        $(".fancybox").attr('rel', 'gallery').fancybox({
            helpers: {
                thumbs: {
                    width: 40,
                    height: 40,
                    source: function(current) {
                        return $(current.element).data('thumbnail');
                    }
                }
            }
        });
    });
</script>

标题

<!-- Add jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<!-- Add fancyBox -->
<link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.3" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.3"></script>

根据Chrome开发者工具中的Source,它似乎确实在拉动外部文件。

THX

4 个答案:

答案 0 :(得分:4)

嗯。看起来jquery加载了两次。一旦用

<!-- Add jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

和另一个(更难找到)

http://staging.timeoutchicago.com/sites/timeoutchicago.com/files/advagg_js/js_13ec2e29dba08b369ccfdde54d836ec0_8.js

看起来你正在使用drupal并使用一些谷歌搜索,听起来它为你注入了一个jquery版本(jQuery JavaScript Library v1.3.2)

发生错误的原因是两个库之间的冲突。请尝试关注此更新 http://drupal.org/project/jquery_update

答案 1 :(得分:2)

你正在使用jQuery的两个版本。

从控制台执行jQuery(".fancybox").jquery时,您会获得1.3.2。毫无疑问,这与fancybox不兼容。

jQuery 1.8.2通过Google CDN加载了明确的script代码请求。

jQuery 1.3.2作为http://staging.timeoutchicago.com/sites/timeoutchicago.com/files/advagg_js/js_13ec2e29dba08b369ccfdde54d836ec0_8.js的一部分加载,它来自Drupal为自己的目的注入此库。

为了将来参考,我能够使用Chrome开发者工具找到这个文件,按文件大小排序(最大的第一个),然后查看JS文件......之后很快发现它。

答案 2 :(得分:0)

我遇到了同样的问题,我通过更改行中的双引号解决了这个问题:

$(".fancybox").fancybox();

单引号:

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

排序&#39;陷阱&#39;因为fancyBox网站有双引号。

答案 3 :(得分:-1)

如果有什么不起作用:

 parent.window.document.getElementById("fancybox-wrap").style.display = 'none';

这个隐藏的花哨盒。