BackboneJS,RequireJS - 未捕获的ReferenceError:$未定义

时间:2014-01-22 10:57:16

标签: javascript jquery backbone.js requirejs

我有一个使用RequireJS的Backbone应用程序。不知怎的,我总是得到错误 -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>标记内。

那么这个问题是什么?

1 个答案:

答案 0 :(得分:0)

“未捕获的ReferenceError:$未定义”

您收到此错误是因为您使用的是需要jQuery的内容,而您之前没有加载过jQuery。

你可能已经加载了jQuery,但它似乎没有在适当的时候加载。

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

查看在jquery之前加载了哪个jquery插件,以便找到根本原因。