Fancybox不是一个功能

mac*_*cha 28 html javascript jquery jquery-plugins fancybox

您好我正在使用jQuery插件fancybox显示bing地图,当有人将地址输入文本框并点击旁边的提交按钮时.并加载fancybox并显示该地址的地图.这适用于我的应用程序,但问题是,它只能在一个页面上运行良好,而在另一个页面上,当我加载它时,它给我一个错误,说fancybox不是一个函数.我在错误控制台和firebug控制台中看到了这个错误.我不确定会出现什么问题.相同的代码适用于另一个页面,但它不适用于此页面?

$("<a href=\"#showmap\">Map</a>").fancybox is not a function
Run Code Online (Sandbox Code Playgroud)

我很确定它不是可重用性问题.但是当我测试是否已经加载了fancybox的原始文件时,它们会加载dom,所以它可能不是实际问题.但我无法理解问题还有什么.

这是我的代码

abbr:只是一个文本位.我根据用户选择的内容有不同的div.并且每个div都有自己的控件,这些控件将从该文本开始并附加自己的定义,例如mapresults,decValLat,decValLon等.

ex:abbr >> east然后ids将是eastmapresults,eastdecValLat,eastdecValLon等.

function showMapFancybox(abbr){
    var abbr;
    $('#'+abbr+'mapresults').hide(); 
    $('<a href="#showmap">Map</a>').fancybox({
        overlayShow: true,
        onClosed: function() {
            $('#'+abbr+'mapresults').show();
            map_latdec = $('#decValLat').attr('value');
            map_longdec = $('#decValLon').attr('value');
            map_latdeg = $('#degValLat').attr('value');
            map_longdeg = $('#degValLon').attr('value');

            $('#'+abbr+'decValLatsub').val(map_latdec);
            $('#'+abbr+'decValLonsub').val(map_longdec);
            $('#'+abbr+'degValLatsub').val(map_latdeg+'N');
            $('#'+abbr+'degValLonsub').val(map_longdeg+'W');
        }
    }).click();    
};
Run Code Online (Sandbox Code Playgroud)

Gui*_*e86 61

我已经有了这种类型的错误,因为我在插件导入后重新加载jQuery,检查你不会错误地重新导入jquery(有时包含在像jQuery工具这样的包中).

  • 如何检查我是否重新导入?我想这就是问题所在 (2认同)

Wyc*_*yck 7

我刚刚遇到这个问题,似乎某些版本的jQuery与FancyBox的版本不兼容,例如Fancybox 1.3.4对于1.7以下的jQuery版本是错误的,并且不适用于高于1.8的版本.