我最近开始工作机智需要js,我有一个问题。
每件事情都在加载完美,但有时当我刷新页面时会出现以下错误
Uncaught ReferenceError: $ is not defined
如果我再次刷新它的消失,如果我再次刷新那里。
这是我的结构
requirejs.config({
baseUrl: siteUrl + "assets/js",
paths: {
"jquery": "./libs/jquery",
"jquery-ui": "libs/jquery-ui",
"bootstrap": "libs/bootstrap",
"scripts": "scripts",
"plugins": "plugins",
},
shim: {
'jquery-ui': {
deps: [ 'jquery' ],
exports: 'jquery-ui'
},
'bootstrap': {
deps: [ 'jquery' ],
exports: 'bootstrap'
},
'plugins/controls': {
deps: [ 'jquery', 'plugins/dialog2'],
exports: 'plugins/controls'
},
'plugins/form': {
deps: [ 'jquery'],
exports: 'plugins/form'
},
'plugins/dialog2': {
deps: [ 'jquery' ],
exports: 'plugins/dialog2'
},
'plugins/chosen': {
deps: [ 'jquery' ],
exports: 'plugins/chosen'
},
waitSeconds: 25,
}
});
/*
loading libs for every page
*/
requirejs(['jquery', 'jquery-ui', 'bootstrap', 'plugins/chosen'],
function($, chosen){
/*
loading global selectors and variables
*/
$(function () {
$('.chzn-select').chosen();
});
});
所以我是一个非常大的开端,可以取悦有人给我一个提示,或解释为什么我得到这个错误?为什么会在页面刷新时发生这种情况?
答案 0 :(得分:2)
这肯定是一个问题:
requirejs(['jquery', 'jquery-ui', 'bootstrap', 'plugins/chosen'],
function($, chosen){
...
您想要加载插件chosen
,但事实上它是jquery-ui
。由于您不使用它,请删除参数(但不要从数组中删除)。
我怀疑您的插件plugins/chosen
(以及其他)的导出值有shim
错误。
你写过那些插件吗?如果是这样,只需将它们的代码包装在define
块中,您就不需要再将它们填充:
define(['jquery'], function ($) {...});
更多here。