0

我想在我的模块中使用 jQuery UI Accordion,但如果我包含 Oracle MapViewer 库,我总是得到div.accordion is not a function 。这个库还不支持 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(所有组件)。

4

2 回答 2

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();
});
于 2016-07-29T07:21:36.577 回答
0

尝试像这样更改第一个示例的垫片部分:

shim: {
    "jquery-ui": {
        export:"$" ,
        deps: ['jquery']
    }
}

或者更新到最后支持 AMD 加载的最新 jQuery-ui 版本。

于 2016-05-20T14:05:27.463 回答