requireJS计时问题 - 某些引导JS不起作用

requirejs timing issue - some bootstrap js doesn't work

本文关键字:JS 不起作用 问题 requireJS      更新时间:2023-09-26

自从开始使用requireJs以来,我遇到了一个奇怪的问题。 此问题似乎只发生在某些侧边栏菜单项上,可以展开以查看子菜单项。 RequireJS 模块在最后调用,在

身体

标记,以及页面上的其他 JS 本身工作正常,只是不是这个侧边栏菜单。 非常感谢您的帮助,因为我已经为此奋斗了几天!

布局视图:

<body>
    ...Ouput ommited for brevity
    <ul class="nav nav-list">
        <li>
            <a href="#" class="dropdown-toggle">
                <i class="menu-icon fa fa-desktop"></i>
                <span class="menu-text">  Devices  </span>
                <b class="arrow fa fa-angle-down"></b>
            </a>
            <b class="arrow"></b>
            <ul class="submenu">
                <li>
                    <a href="#" class="dropdown-toggle">
                        <i class="menu-icon fa fa-caret-right"></i>
                        CA Spectrum
                        <b class="arrow fa fa-angle-down"></b>
                    </a>
                    <b class="arrow"></b>
                </li>
            </ul>
        </li>
    </ul>
    ...Output ommited for brevity
    @RenderSection("scripts", required: false)
</body>

"下拉切换"类是引导.js用来做的事情 下拉列表行为。

具有在布局视图底部呈现的脚本部分的子视图:

@section scripts {
    <script data-main="/Scripts/dist/app" src="~/Scripts/dist/require.js"></script>
    <script>
            var ajaxUrl = '@Url.Content(url)';
        require(['app'], function () {
            require(['casnodes-downtime']);
        });
    </script>
}

应用.js

requirejs.config({
    baseUrl: "/Scripts/dist/",
    paths: {
        "requireLib": "./require",
        "app": "./app",
        "main": "./main",
        "jquery": "./jquery-2.1.4",
        "jqbsace": "./jqbsace",
        "datatables": "./jquery.dataTables",
        "moment": "./moment",
        "momentTZ": "./moment-timezone",
        "momentDF": "./moment-duration-format",
        "datarangepicker": "./daterangepicker/daterangepicker",
        "highstock": "./highstock",
        "highmaps": "./highmaps",
        "bootstrap": "./bootstrap",
        "aceconcat": "./aceconcat",
        "jstz": "./jstz-1.0.4.min",
        "shared": "./controllers/shared1",
        "usa": "./us-all",
        // Controller modules
        "casnodes-chronicnodes": "./controllers/casnodes/chronicnodes",
        "casnodes-downtime": "./controllers/casnodes/downtime",
        "casnodes-downnodes": "./controllers/casnodes/downnodes",
        "casnodes-nodedowntime": "./controllers/casnodes/nodedowntime"
    },
    shim: {
        "highstock": ["jquery"],
        "jstz": {
            exports: "jstz"
        },
        "bootstrap": ["jquery"],
        "aceconcat": ["bootstrap"],
        "momentDF": ["moment"],
        "highmaps": ['jquery'],
        "usa": ['jquery', 'highmaps']
    }
});
requirejs(["main"]);

主.js

define([], function () {
});

停机模块

define(["jquery", "moment", "jstz", "momentDF", "momentTZ", "datatables", "highstock", "datarangepicker", "aceconcat"], function ($, moment) {
    $(document).ready(function () {
     ...Output ommited for brevity
    });
});

你应该使用任何一个

      require(['app','casnodes-downtime'], function () {
      });

    require(, function () {
        require('app');
        require('casnodes-downtime');
    });

不要把它们混为一谈。