您好我正在使用jQuery插件fancybox显示bing地图,当有人将地址输入文本框并点击旁边的提交按钮时。并加载fancybox并显示该地址的地图。这适用于我的应用程序,但问题是,它只能在一个页面上工作,而另一个页面,当我加载它时,它给我一个错误,说fancybox不是一个函数。我在错误控制台和firebug控制台中看到了这个错误。我不确定会出现什么问题。相同的代码在另一个页面中工作,但它不在这个页面上吗?
$("<a href=\"#showmap\">Map</a>").fancybox is not a function
我很确定这不是可重用性问题。但是当我测试是否已经加载了fancybox的原始文件时,它们会加载dom,所以它可能不是实际问题。但我无法理解问题还有什么。
这是我的代码
abbr:只是一个文本位。我根据用户选择的内容有不同的div。并且每个div都有自己的控件,这些控件将从该文本开始并附加自己的定义,例如mapresults,decValLat,decValLon等。
ex:abbr&gt;&gt; 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();
};
答案 0 :(得分:57)
我已经有了这种类型的错误,因为我在插件导入后重新加载jQuery,检查你是不是错误地重新导入jquery(有时包含在像jQuery工具这样的包中)。
答案 1 :(得分:6)
我刚刚遇到这个问题,似乎某些版本的jQuery与FancyBox的版本不兼容,例如Fancybox 1.3.4对于1.7以下的jQuery版本是错误的,并且不适用于高于1.8的版本。
答案 2 :(得分:3)
您需要加载扩展名,例如easing.js和mousewheel.js BEFORE 主要的fancybox插件。这解决了这个问题。
答案 3 :(得分:2)
如果“fancybox”作为函数不存在,则可能是jQuery源或插件源无法加载到您的页面中。确保路径,文件名和扩展名都正确。
编辑:确保在链接到任何插件之前链接到jQuery Source。如果在jQuery之前将插件加载到HTML中,插件将失败。
答案 4 :(得分:1)
在我的例子中,它是jQuery.noConflict();在另一个jQuery插件中排...当我删除一切开始工作。
答案 5 :(得分:0)
如果您在头标记中使用包含JQuery的插件,则可能会出现此问题。 我最近在我的博客中添加了“TheThe Slider”,我的所有FancyBox都停止了工作。虽然这种情况很容易解决。基本上,转到插件目录,搜索对jquery的调用并使其使用条件。如果您希望看到我的实现,我使用screen-capture进行了blog about it。
答案 6 :(得分:0)
我在我的WordPress网站上遇到了这个问题,我发现问题发生的原因是fancybox.js
在我安装的两个插件的代码中出现了两次。因此,请检查您的代码,并确保从一个来源加载。
答案 7 :(得分:0)
1)你已经加载了jQuery吗?如果没有,则在任何 $ 命令开始之前加载它。
2)检查,可能是你在页面中多次加载jquery库(.js)。尝试只加载一个。
3)在文件末尾,您可以执行此javascript命令:$ = jQuery.noConflict();
,它可能会解决。如果没有,那么任何地方都使用 jQuery 而不是 $ 这个词,它也会起作用。