jquery、Bootstrap3.0和requirejs。can';t使用引导';s函数
我已经查看了所有与此问题相关的信息(好的..第一次谷歌页面点击),但解决方案不起作用 我的config.js如下所示:jquery、Bootstrap3.0和requirejs。can';t使用引导';s函数,jquery,twitter-bootstrap,requirejs,Jquery,Twitter Bootstrap,Requirejs,我已经查看了所有与此问题相关的信息(好的..第一次谷歌页面点击),但解决方案不起作用 我的config.js如下所示: var config = { paths : { jquery : "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min", // "jquery" : "momsplanner/backgrid/assets/js/jquery",
var config = {
paths : {
jquery : "//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min",
// "jquery" : "momsplanner/backgrid/assets/js/jquery",
"underscore" : "momsplanner/underscore/underscore",
"text" : "momsplanner/requirejs_text/text",
// "backbone" : "momsplanner/backbone",
"Backbone" : "momsplanner/backgird/assets/js/backbone",
"Backgrid" : "momsplanner/backgrid/lib/backgrid",
"bootstrap" : "momsplanner/bootstrap/dist/js/bootstrap"
// "bootstrap" : "//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap"
// 'jquery.bootstrap' : "momsplanner/backgrid/assets/js/bootstrap"
},
// A lot of dependencies don't support AMD loaders. Here is an example shim
// configuration to remedy that.
shim : {
"underscore": {
exports: '_'
},
"Backbone" : {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
"Backgrid" : {
deps: ['jquery', 'underscore', 'backbone'],
exports: 'Backgrid'
},
'bootstrap' : {
deps: ["jquery"]
}
}
};
if (typeof exports === 'object') {
// If this file is loaded from node, export the config variable.
module.exports = config;
} else if (typeof define === 'function' && define.amd) {
// If this file is being loaded in the browser, load the config
define([], function() {
requirejs.config(config);
});
}
我正在加载一个模块,如下所示
require( [
'momsplanner/js/custom_bootstrap'
], function(custom_bootstrap) {
$(document).ready(function() {
custom_bootstrap.setNavbarActive();
custom_bootstrap.gotoTab();
});
});
自定义_引导看起来像:
define([
"jquery",
"bootstrap"
], function($) {
.. omitting some functions..
// http://stackoverflow.com/questions/7862233/twitter-bootstrap-tabs-go-to-specific-tab-on-page-reload
function gotoTab() {
// Javascript to enable link to tab
var hash = document.location.hash;
var prefix = "tab_";
if (hash) {
var $selector = $('.nav-tabs a[href='+hash.replace(prefix,"")+']');
console.log($selector.html());
$selector.tab('show'); // ERROR HERE!!!! <------------------------
}
// Change hash for page-reload
$('.nav-tabs a').on('shown', function (e) {
window.location.hash = e.target.hash.replace("#", "#" + prefix);
});
}
return {
setNavbarActive: setNavbarActive,
gotoTab: gotoTab
};
如何修复此错误?我遵循此方法 在配置中,我在shim中定义了引导:
shim:{
....
bootstrap : ['jquery']
....
}
然后在模块定义中将其插入deps数组,并使用引导功能,如JQ插件:
define(
[
"jquery",
"bootstrap"
],
function($){
$('.some').affix();
}
)
我也有这个问题,最后我解决了它只是改变我的引导版本 首先我使用bootstrap3.1.1,它定义了这样的插件
(function (o_o) {
typeof define === 'function' && define.amd ? define(['jquery'], o_o) :
typeof exports === 'object' ? o_o(require('jquery')) : o_o(this.jQuery)
})(function($) { ... });
然后我改为bootstrap3.2.0,它定义了这样的插件
+function ($) { ... }(jQuery)
第一个,当它定义一个插件时,它不能将插件挂载到全局$,所以当
使用插件时,会出现错误:UncaughtTypeError:undefined不是函数
第二个很好,因为jQuery是一个全局变量。请参阅您另一篇文章中的我的答案:
+function ($) { ... }(jQuery)