Javascript BackboneJS,RequireJS-未捕获引用错误:$未定义
我有一个使用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配置如下所示:
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']}
。