Javascript BackboneJS,RequireJS-未捕获引用错误:$未定义

Javascript BackboneJS,RequireJS-未捕获引用错误:$未定义,javascript,jquery,backbone.js,requirejs,Javascript,Jquery,Backbone.js,Requirejs,我有一个使用RequireJS的主干应用程序。不知何故,我总是得到错误-消息未捕获引用错误:$未定义,因此我猜我没有正确加载库 我的RequireJS配置如下所示: require.config({ paths: { // Core libraries. jquery: 'lib/jquery/jquery', backbone: 'lib/backbone/backbone', // Templating. handlebars: 'lib/han

我有一个使用RequireJS的主干应用程序。不知何故,我总是得到错误-消息
未捕获引用错误:$未定义
,因此我猜我没有正确加载库

我的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'
    }
}
});
我将
放在索引页的
-标记内

那么这里的问题是什么?

未捕获引用错误:$未定义

您之所以会出现此错误,是因为您正在使用需要jQuery的东西,而在此之前您还没有加载jQuery

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

您已经使用了许多插件,所以将shim配置添加到所有使用jQuery的非AMD插件中


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

哪行代码导致了错误?@SHT:jquery在脚本执行之前没有加载,这就是为什么会出现$undefined error。确保在执行之后的任何操作之前加载了jquery。@SumodhNair-Hmm,但是我认为jQuery已经加载了,所以我真的不知道在这里要更改什么…嗯,好吧,当我删除我在
垫片中包含的大多数脚本:{backbone:{deps:[]}
-错误消失了。。。但即使jQuery总是作为第一个脚本加载,我也不明白。。。weird@SHTjqueryEffects看起来像一个jQuery插件。如果它是一个jQuery插件,那么在jqueryEffects之前在哪里确保jQuery被加载?jqueryEffects必须知道AMD并自己调用
define
,或者您必须为它设置一个垫片,如
jqueryEffects:{deps:['jquery']}