未捕获的TypeError:对象[object Object]没有方法“fancybox”

时间:2012-01-30 21:25:45

标签: javascript jquery fancybox

我对fancybox(2.x)有一个非常奇怪的问题。我使用这个脚本已经很久了,但我之前没有遇到过这样的问题。

所以,我有网站:http://tinyurl.com/6mx7an8并且我已经包含了每个jquery / fancybox文件,但是JS控制台给了我错误

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

你知道我做错了什么吗? 任何帮助将不胜感激:)

6 个答案:

答案 0 :(得分:53)

您的网站有几个问题。

  1. 你在包括fancybox插件js之前和之后包括jQuery库2次,因为添加的插件被第二个jQuery库包含清除。
  2. 还有一些其他库会覆盖$,因此您的代码无效,因为$不再是jQuery的别名。您可以使用jQuery.noConflict()来避免与使用相同变量$的页面上的其他库发生冲突。

答案 1 :(得分:6)

看起来jQuery包含两次,一次靠近头顶,一次靠近底部。

答案 2 :(得分:2)

我有类似的问题。不知何故,jQuery被加载了两次。在测试某些内容时结果显示,我添加了一个drupal_add_js行来加载一个块中的jquery,该块已被禁用,但Drupal仍在禁用块中评估PHP。

当我从块中删除drupal_add_js行时,jQuery加载正常,每页一次。

答案 3 :(得分:1)

我的网站上有一个css unify php脚本,它将jquery和jquery postmessage插件添加到同一个javascript文件中。

所以它给了我上面的错误。

我已经单独加载了jquery postmessage而没有统一它,它停止给我错误。

答案 4 :(得分:0)

我使用了这段代码

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

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

答案 5 :(得分:0)

Jquery子库可能包含在主库中,例如jquery.ui.sortable.js我在下载时已经包含在jquery-ui.js中,我再次添加它给我一个错误。

脚本类型=&#34; text / javascript&#34; SRC =&#34;供应商/ JS / jQuery的ui.js&#34;&GT;

脚本类型=&#34; text / javascript&#34; SRC =&#34;供应商/ JS / jquery.ui.sortable.js&#34;&GT;

所以验证子库是否包含