2014-12-01 136 views
-3

我为我的滑块使用脚本Camera。不幸的是它会持续,给我以下错误:jQuery/JavaScript未定义函数错误

TypeError: undefined is not a function (evaluating '$('#camera_wrap').camera')

这件作品,其中所涉及的代码如下:

$(document).ready(function() { 
    $('#camera_wrap').camera({ 
     loader: true, 
     pagination: false, 
     minHeight: '', 
     thumbnails: false, 
     height: '54.6875%', 
     caption: true, 
     navigation: true, 
     fx: 'simpleFade' 
    }); 
}); 
+1

您是否包含该插件? – kapantzak 2014-12-01 15:50:05

+2

当你不在那里时,你正在调用插件! – adeneo 2014-12-01 15:50:17

+1

它找不到您的相机插件,请参阅您已经包含它并在调用此脚本之前加载它。 – stackErr 2014-12-01 15:50:48

回答

0

你们中的一个调用的函数实际上不是一个函数。

只有两个或三个(相关)函数调用:$(..).camera(...)和可能.ready(...)。 。 因此:

  • 在执行此脚本之前,您没有加载jQuery。在这种情况下,$(...)不存在。在执行脚本之前,您应该先加载jQuery库(在页面代码中更高的位置)。
  • 你有jQuery加载兼容模式,所以它不注册$(...)。在这种情况下,您可以用jQuery替换简写$,这样您就可以拨打jQuery.ready(....)
  • 您没有加载相机插件。加载它的位置并不重要,因为调用该函数的代码只在整个页面加载时调用,但您需要将该库也包含在页面中。
  • 您没有包含任何其他库,或者您以错误的顺序包含它们。 The website says

As you can see in the examples themselves, before the Camera plugin, you must call jQuery in the head [sic]*) of your document: without jQuery the slideshow doesn't work.

Then you must call jQuery Easing plugin and jQuery Mobile plugin. After that you must call Camera plugin and initialize the function camera with the simply method jQuery('YOUR_TARGET').camera();

*)(如Sparky在评论中提到,你不严格需要加载jQuery的在头上,只要你在执行脚本之前加载它)。

+0

jQuery不必从文档的“头部”调用。只要DOM就绪事件处理函数被正确使用并且插件包含在jQuery之后,jQuery也可以被包含在文档的'body'中。 – Sparky 2014-12-01 16:05:57

+0

谢谢。我没有说任何应该加载在头部的地方。它应该在执行发布的脚本之前加载。因此,如果OP的脚本在主体中,那么只要它仍然在脚本之前,jQuery也可以加载到主体中。对不起,如果这不清楚。 – GolezTrol 2014-12-01 16:12:57

+1

是的,但是你引用了一个网站 - “你必须在头部调用jQuery”_。我只是澄清说这不完全正确。 – Sparky 2014-12-01 16:14:20

0

鉴于评估$('#camera_wrap').camera时发生错误,我们可以假设您已正确加载jQuery,因为这在$(document).ready()内调用。

所以问题一定是jQuery在需要的时候无法'看到'你的插件脚本。

请务必包括Camera插件脚本 jQuery和以前你的代码,使用它。如果您不知道如何执行此操作,请编辑您的问题,并在您正在处理的页面中包含所有HTML。

相关问题