2014-01-22 47 views
0

我有一個Backbone應用程序,我使用RequireJS。不知何故,我總是得到錯誤 -message Uncaught ReferenceError: $ is not defined,所以我想我沒有正確加載我的圖書館。

我RequireJS的配置是這樣的:

require.config({ 

paths: { 

    // Core libraries. 
    jquery: 'lib/jquery/jquery', 
    backbone: 'lib/backbone/backbone', 

    // Templating. 
    handlebars: 'lib/handlebars/handlebars', 

    // Plugins. 
    text : 'lib/requirejs-text/text', 
    less: 'lib/require-less/less', 
    lodash: 'lib/lodash/lodash.min', 
    all: 'lib/all/all', 
    imageload: 'lib/imageload/jquery.imagesloaded', 
    selectivizr: 'lib/selectivizr/selectivizr-min', 
    modernizr: 'lib/modernizr/modernizr.min', 
    jqueryEffects: 'lib/jquery/jquery.effects', 

    // App folders. 
    collections: 'app/collections', 
    models: 'app/models', 
    routers: 'app/routers', 
    templates: 'app/templates', 
    views: 'app/views' 
}, 

shim: { 
    backbone: { 
     deps: ['jquery', 'lodash', 'all', 'selectivizr', 'modernizr', 'less', 'jqueryEffects'], 
     exports: 'Backbone' 
    }, 
    lodash: { 
     exports: '_' 
    }, 
    handlebars: { 
     exports: 'Handlebars' 
    } 
} 
}); 

我把<script data-main="js/config" src="js/lib/requirejs/require.js"></script><body> -tag我的索引頁的內部。

那麼這裏的問題是什麼?

+1

哪行代碼給你錯誤? – Lucian

+0

@SHT:在你的腳本執行之前,jQuery沒有被加載,這就是爲什麼你得到$ undefined error.Make確保jquery在你之後執行任何東西之前被加載。 –

+0

@SumodhNair確切地說,但我認爲jQuery已經加載,所以我真的不知道該怎麼改... – SHT

回答

0

「未捕獲的ReferenceError:$沒有定義」

由於你正在使用的東西,需要的jQuery得到這個錯誤,你之前有沒有加載jQuery的。

您可能已經加載了jQuery,但似乎沒有在適當的時候加載。

您已經使用了很多插件,因此將shim配置添加到所有使用jQuery的非AMD插件。

檢查jQuery之前加載哪個jquery插件,以便您可以找到根本原因。

相關問題