未捕获的TypeError:对象函数(a,b)没有方法'fancybox'

时间:2013-11-20 12:34:34

标签: jquery ajax fancybox-2

该项目正在使用fancyBox v2.0.5和jQuery v1.7.2,我的javascript代码是:

function getWeather() {
    $("body").css("cursor", "progress");
    console.log("click");

    url = 'index.php?model=weather_page';
    $.ajax({
        async: false,
        type: 'GET',
        url: url
    }).done(function(data) {
            $.fancybox({
                'width'             : 850,
                'height'            : 850,
                'speedIn'           : 800,
                'autoScale'         : true,
                'transitionIn'      : 'elastic',
                'transitionOut'     : 'elastic',
                'easingIn'          : 'easeOutBack',
                'easingOut'         : 'easeInBack',
                'type'              : 'inline',
                'scrolling'         : 'auto',
                'closeBtn'          : true,
                'closeClick'        : true,
                'content'           : data,
                'onComplete' : function(){
                    $.fancybox.resize();
                },
            });
            $("body").css("cursor", "auto");
        });
}

在onclick事件中运行:

<div id="miniWeatherBlock" onclick="getWeather()">
    // data for mini-weather block
</div>

当我第一次点击它时,该事件运行正常,它在一个fancybox弹出窗口中加载从AJAX返回的数据。然而,在我关闭它之后再点击同一个miniWeatherBlock,它没有加载弹出窗口,在控制台中我收到错误:

  

未捕获TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}   没有方法'fancybox'

在我使用$.fancybox({

的行

任何想法有什么不对?

修改              //头部片段     

<script src="js/jquery.fancybox.pack.js"></script>

<script src="js/functions.js"></script>
</head>

js/functions.js内 - 我有getWeather()函数。

其他fancybox实例工作得很好,例如,这也在js/functions.js文件中:

$(".fancybox-information").fancybox({
    'width'             : 720,
    'height'            : 1300,
    'speedIn'           : 800,
    'autoScale'         : true,
    'transitionIn'      : 'elastic',
    'transitionOut'     : 'elastic',
    'easingIn'          : 'easeOutBack',
    'easingOut'         : 'easeInBack',
    'type'              : 'iframe',
    'scrolling'         : 'no',
    'closeBtn'          : true,
    'closeClick'        : true
});

当页面包含类fancybox-information

的元素时,它可以正常工作

1 个答案:

答案 0 :(得分:2)

可能你在代码中的某个地方再次包含了jQuery核心库。

这导致jQuery(及其别名$)将被恢复,并且删除了附加到它的任何插件。