Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Fancybox不是一个函数_Javascript_Jquery_Html_Jquery Plugins_Fancybox - Fatal编程技术网

Javascript Fancybox不是一个函数

Javascript Fancybox不是一个函数,javascript,jquery,html,jquery-plugins,fancybox,Javascript,Jquery,Html,Jquery Plugins,Fancybox,您好,我正在使用jQuery插件fancybox显示bing地图,当有人在文本框中输入地址并点击旁边的提交按钮时。然后加载fancybox并显示该地址的地图。这在我的应用程序中运行良好,但问题是,它只在一个页面和另一个页面上运行良好,当我加载它时,它会给我一个错误,说fancybox不是函数。我可以在错误控制台和firebug控制台中看到这个错误。我不确定这是什么问题。相同的代码在另一个页面上工作,但在这个页面上不工作 $("<a href=\"#showmap\">Map</

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

$("<a href=\"#showmap\">Map</a>").fancybox is not a function
$(“”)。fancybox不是函数
我很确定这不是可重用性的问题。但当我测试fancybox的原始文件是否已加载时,它们是用dom加载的,所以这可能不是实际问题。但我不明白还有什么问题

这是我的密码

缩写:只是一个文本位。根据用户的选择,我有不同的div。每个div都有自己的控件,这些控件将从该文本开始,并附加有自己的定义,如mapreults、decvalat、decvalon等

ex:abbr>>东部 然后ID将是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();    
};
函数showMapFancybox(缩写){
var abbr;
$('#'+abbr+'mapresults').hide();
$('').fancybox({
是的,
onClosed:function(){
$('#'+abbr+'mapresults').show();
map_latdec=$('decvalat').attr('value');
map_longdec=$('decvalon').attr('value');
map_latdeg=$('degValLat').attr('value');
map_longdeg=$('#degValLon').attr('value');
$('#'+abbr+'decvalatsub').val(map#u latdec);
$('#'+abbr+'decvalonsub').val(map#u longdec);
$('#'+abbr+'degValLatsub').val(map#latdeg+'N');
$('#'+abbr+'degValLonsub').val(map_longdeg+'W');
}
})。单击();
};
如果函数“fancybox”不存在,则可能是jQuery源代码或插件源代码无法加载到您的页面中。确保路径、文件名和扩展名都正确


编辑:确保在链接到任何插件之前先链接到jQuery源代码。如果在jQuery之前将插件加载到HTML中,则插件会失败。

我已经有过此类错误,因为我在插件导入后重新加载jQuery,请检查您是否没有错误地重新导入jQuery(有时包含在jQuery tools之类的包中).

在主fancybox插件之前,您需要加载easing.js和mouseweel.js等扩展。这就解决了问题。

如果您使用的插件在头标签中包含JQuery,则可能会出现此问题。
我最近在我的博客中添加了“TheSlider”,我所有的FancyBox都停止工作了。不过,这种情况很容易解决。基本上,转到插件目录,搜索对jquery的调用,并使其使用有条件。如果你想看看我的实现,我用屏幕截图做的。

在我的例子中是jQuery.noConflict();另一个jQuery插件中的行。。。当我删除所有内容开始工作时。

我刚刚遇到这个问题,jQuery的某些版本似乎与FancyBox的版本不兼容,例如,Fancybox 1.3.4在jQuery版本低于1.7时有缺陷,在高于1.8的版本上不起作用。

我在WordPress网站上发现了这个问题,我发现这个问题是因为
Fancybox.js
在我安装的两个插件的代码中出现了两次。因此,请检查您的代码并确保从一个源加载。

可能的解决方案: 1) 您已经加载jQuery了吗?如果没有,则在任何$命令启动之前加载它

2) 检查,可能您在页面中多次加载jquery库(.js)。尝试只加载一个


3) 在文件末尾,您可以执行以下javascript命令:
$=jQuery.noConflict()可能会解决问题。如果没有,那么在任何地方使用jQuery而不是$,它也会起作用。

为什么要重新定义abbr,因为它是函数的参数?我刚刚编辑了这个问题。我希望这能有所帮助。在我看来,这个不工作的页面缺少定义
fancybox
的javascript文件。你检查过两个页面上是否包含相同的javascript文件了吗?我也是这么想的。所以我所做的就是打开jquery.fancybox-1.3.1.js文件,添加一些测试代码,每当调用这个函数时都会发出警报。它所做的是,无论何时加载页面,都会加载fancybox javascript文件,并发出警报。但我仍然不确信fancybox函数是否可用于此页面,并且我不确定如何检查此文件是否可以访问该函数?这很奇怪。如果相同的代码在一个页面上工作,而在另一个页面上工作,那么该文件要么丢失(看起来显然不是),要么函数被稍后的脚本加载压扁。你能在工作和非工作页面上发布你正在使用的脚本标签吗?我如何检查我是否正在重新导入??我想这就是问题所在,我们是否有一种方法来查找多个实例,这些实例可能是非自愿发生的??到目前为止,我确信我只加载了一次插件和jQquery源代码。这是我的默认布局。但我在别处也读到过,这可能是问题所在。你就是那个人!!我正在使用另一个视图作为div的一部分进行加载,它再次加载了我的默认布局,然后又一起加载了我的jQuery!!非常感谢,先生!!没问题,检查的一种方法是在第一次导入后向jQuery对象追加一些内容,并检查firebug($.test=“ok”;)是否仍然存在,并没有解决我的问题--我的页面显然加载了fancybox js文件,但仍然抛出