未捕获的错误:Bootstrap的JavaScript需要带有requirejs的jQuery

时间:2015-03-28 10:45:03

标签: jquery twitter-bootstrap backbone.js twitter-bootstrap-3 requirejs

我收到的错误是jQuery没有定义。

bootstrap.js:8未捕获错误:Bootstrap的JavaScript需要jQuerybootstrap.js:8(匿名函数)

Bootstrap v3.3.0

jQuery JavaScript Library v2.1.3

requirejs

 require.config({
shim: {
    'backbone': {
        deps: ['underscore', 'jquery']
    },
    'backbone-validation': {
        deps: ['backbone', 'jquery']
    },
    'jquerymx': {
        deps: ['jquery']
    },
    'bootstrap': {
        deps: ['jquery']
    }
},
paths: {
    'jquery': '/public/js/lib/jquery-2.1.3',
    'jquerymx': '/public/js/lib/jquerymx-3.2.custom',
    'bootstrap': '/public/js/lib/bootstrap',
    'handlebars': '/public/js/lib/handlebars-v2.0.0',
    'underscore': '/public/js/lib/underscore',
    'backbone': '/public/js/lib/backbone',
    'backbone-validation': '/public/js/lib/backbone-validation'
}
});
require(
[
    'order!jquery',
    'order!jquerymx',
    'order!bootstrap',
    'order!handlebars',
    'order!underscore',
    'order!backbone',
    'order!backbone-validation'
], function () {

    require(['main'], function (main) {
        main.initialize();
    });
});

这里有什么不对吗?

感谢。

1 个答案:

答案 0 :(得分:1)

一些建议:

首先,RequireJS 2.0中不再支持或不需要order插件。 shim配置完全能够表达您需要做的事情。 See here 了解详情。

其次,我有点困惑为什么你将jqueryjquery.min列为依赖项。它们应该提供完全相同的东西,jquery.min只是一个较小的文件。当你两次使用相同的代码时,一些JS会感到困惑,这可能就是这里发生的事情。尝试从配置中删除jquery.min的所有实例。

最后,您的两阶段require(...)电话似乎没有必要。假设您的main模块直接列出了它所需的库,您应该能够:

require(['main'], function (main) {
    main.initialize();
});

如果上述建议没有帮助,请提供更多详细信息 - 即main模块中的内容。