我想在我的模块中使用jQuery UI Accordion,但如果我包含Oracle MapViewer库,我总是得到 div.accordion不是函数。这个库还没有支持AMD,所以我在shim中定义了它的依赖。 所有库按以下顺序加载:jQuery UI,jQuery,(Oracle MapViewer)。我认为应首先加载jQuery,但该命令有效,除非我加载Oracle MapViewer。
我的HTML
<!--in head-->
<script src="lib/require.min.js" data-main="app"></script>
<!--in body-->
<div id="accordion">
<h3>Section 1</h3>
<div>Vestibulum a velit eu ante scelerisque vulputate.</div>
<h3>Section 2</h3>
<div>Vivamus non quam. In suscipit faucibus urna.</div>
</div>
我的app.js
require.config({
paths: {
"jquery": "lib/jquery-1.12.3",
"jquery-ui": "lib/jquery-ui",
"oraclemaps": "lib/oraclemapsv2"
},
shim: {
"oraclemaps": ['jquery']
}
});
require(['oraclemaps', 'jquery-ui'], function ()
{
$("#accordion").accordion();
});
知道如何在RequireJS中使用Oracle MapViewer库吗?我使用jQuery 1.12.3和jQuery UI 1.11.4(所有组件)。
答案 0 :(得分:0)
尝试更改第一个示例的shim部分,如下所示:
shim: {
"jquery-ui": {
export:"$" ,
deps: ['jquery']
}
}
或者更新到最新支持AMD加载的jQuery-ui版本。
答案 1 :(得分:0)
oraclemaps包含jQuery,因此我们可以选择使用他们的版本。配置如下:
require.config({
paths: {
"jquery-ui": "lib/jquery-ui.min",
"oraclemaps": "lib/oraclemapsv2"
},
shim: {
"jquery-ui": ["oraclemaps"]
}
});
require(["jquery-ui"], function ()
{
$("#accordion").accordion();
});