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工具这样的包中).
我刚刚遇到这个问题,似乎某些版本的jQuery与FancyBox的版本不兼容,例如Fancybox 1.3.4对于1.7以下的jQuery版本是错误的,并且不适用于高于1.8的版本.