RequireJS和Fancybox的奇怪问题

时间:2017-11-21 21:15:13

标签: javascript requirejs fancybox-2

我正在清理工作中的一些旧代码,并试图让事情变得更加模块化。我正在使用RequireJS加载javascript库,因为我需要(呵呵)它们。无论如何,我有一个fancybox的周期性问题,因为它间歇性地无法加载(没有在chrome调试器中显示404或任何东西)。这是我在app.js中的内容:

```

require.config({
    paths: {
        "knockout": "knockout-3.4.0",
        "knockout.validation": "knockout.validation.min",
        "jquery": "jquery-1.8.2",
        "fancybox": "jquery.fancybox.pack",
        "pager": "Page/pager",
        "queryBuilder": "query-builder.min",
        "jQuery.extendext": "jQuery.extendext.min",
        "doT": "doT.min",
        "dataTables": "jquery.dataTables.min"
    },
    baseUrl: "/ucampaignmanager/Scripts",
    shim: {
        "jquery": {
            exports: "jQuery"
        },
        "jQuery.extendext": {
            depends: "jQuery",
            exports: "jQuery.extendext"
        },
        "knockout": {
            exports: "ko"
        },
        "knockout.validation": {
            depends: "ko"
        },
        "fancybox": {
            depends: "jQuery",
            exports: "jQuery.fn.fancybox"
        },
        "queryBuilder": {
            depends: "jQuery.extendext",
            exports: "jQuery"
        },
        "dataTables": {
            depends: "jQuery.extendext",
            exports: "jQuery.fn.dataTable"
        }
    }
});

```

相关网页包含以下内容:

```

require(["knockout", "jquery", "./Page/rtfAreaEditing", "./Page/pager", "queryBuilder"], function (ko, $, rtfAreaEditing) {
                $(function() {
                    //Actual stuff being executed
                });
            });

```

大约七次或左右的时间,页面的硬刷新(或没有缓存重新加载)将导致错误

$.fancybox is not a function

我正在调用它: $(someElement).fancybox();

剩下的时间,它完美无缺。我知道我必须做些蠢事,但我无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:0)

我只是评论,但我还不能。你有没有试过嵌套一个需要调用的花式框。听起来像是在处理竞争条件。