要求JS以错误的顺序加载jQuery插件

时间:2015-06-18 14:19:16

标签: jquery requirejs slick.js

我使用require加载了许多文件,包括jQuery插件Slick Carousel和一个adds a lightbox to the carousel的单独插件。旋转木马和灯箱都正确加载,大约10%的时间都可以工作。大约90%的时间,轮播加载并正常工作,但是当我尝试调用灯箱时出现此错误:

    Uncaught TypeError: $(...).slickLightbox is not a function

就是这样。在我看来,需要是以某种方式加载灯箱故障,但我无法想象为什么。这是我的代码:

    var myRequire = require.config({

baseUrl: './',
appDir: './',
context: 'mypost',
shim: {

    slick:{
        deps: ['jquery'],
        exports: 'slick'
    },
    slickLightbox:{
         deps: ['slick','jquery'],
        exports: 'slickLightbox'
    }
},
paths: {
    jquery: myPost.url.assets + 'js/lib/jquery.min',
    jqueryMigrate: 'http://code.jquery.com/jquery-migrate-1.2.1.min',
    slick: myPost.url.assets + 'js/lib/slick.min',
    slickLightbox: myPost.url.assets + 'js/lib/slick-lightbox',
    TimelineMax: myPost.url.assets + 'js/lib/TimelineMax',
    TweenMax: myPost.url.assets + 'js/lib/TweenMax.min',
    ScrollMagic: myPost.url.assets + 'js/lib/jquery.scrollmagic'
}
    });

    myRequire(['jquery','slick','slickLightbox','TweenMax', 'TimelineMax', 'ScrollMagic'], function ($, slick,slickLightbox,TweenMax, TimelineMax, ScrollMagic) {
'use strict';

1 个答案:

答案 0 :(得分:-1)

经过几次尝试后,这个波纹管将修复上面的代码。

    'slick': {
        deps: ['jquery'],
        exports: 'jQuery.fn.slick'
    },
    slickLightbox:{
        deps: ['slick','jquery'],
        exports: 'jQuery.fn.slickLightbox'
    },