2014-12-01 139 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。