我们有一个使用 jQuery 的 JavaScript 应用程序,并具有以下加载库的 block 。这在大多数情况下都可以正常工作,但在随机时间,jquery-1.11.2.min lib 似乎没有及时加载 jquery-ui.min lib,因此我收到一个 ReferenceError 说 jQuery 未在 jquery- 中定义ui.min 库。 据我所知,库应该按顺序加载,所以我不确定为什么会发生这种情况,所以任何想法都会很棒:
<script type="text/javascript">
var dojoConfig = {
async: true,
paths: {
"libs": location.pathname.replace(/\/[^/]+$/, '') + "/js/lib",
"actions": location.pathname.replace(/\/[^/]+$/, '') + "/js/actions"
},
packages: [
{ name: "jquery", location: "//code.jquery.com", main: "jquery-1.11.2.min" },
{ name: "jqueryui", location: "//code.jquery.com/ui/1.10.3", main: "jquery-ui.min" },
{ name: "moment", location: location.pathname.replace(/\/[^/]+$/, '') + "/js/lib/moment", main: "moment" }
]
};
</script>
最佳答案
您的问题出在 async:true
属性
jqueryui 与 jquery 有依赖关系,因此您必须加载 jquery,然后加载 jqueryui,当它是异步时,它可以加载 jqueryui,然后加载 jquery,这将引发错误
编辑1
如果您希望继续使用 async:true
属性,请尝试使用 deps属性
来自站点: deps:加载 Dojo 后应立即加载的资源路径数组: deps: ["dojo/parser"]
deps (模块标识符字符串数组)/回调(函数) 这些配置变量仅在加载器加载之前适用。当提供时,它们会导致加载器在完成加载后执行 require(deps,callback)。
关于javascript - Jquery 加载间歇性导致未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869584/