在modernizr / yepnope加载所有文件后执行回调

时间:2013-09-30 17:47:54

标签: javascript modernizr yepnope

在我在页面上运行后续脚本之前,我要加载许多测试条件和文件。有没有办法在加载所有文件后触发回调?

this post建议以下内容并传达我的意图,但实际上并不起作用。完成中的函数在1.js或2.js完成加载之前触发。

Modernizr.load([
    {
        test: App.isSmallScreen,
        yep:  '1.js',
        nope: '2.js'
    },
    {
        test: App.isTouch,
        yep: '3.js'
    },
    {
        test: Modernizer.csstransitions,
        nope:4.js
    },
    {
        complete: animationInit
    }
]);

1 个答案:

答案 0 :(得分:0)

提前为这么便宜的伎俩道歉,但这是我能想到的最好的。它肯定可以改进。

嵌入这个或扩展Modernizr可能会相当简单,以某种方式构建一个“完成”的事件来更干净地完成这个。

var completed = []
var complete = function(i) {
  completed.push(i)
  if (completed.length === 3) animationInit();
}

Modernizr.load([
    {
        test: App.isSmallScreen,
        yep:  '1.js',
        nope: '2.js',
        complete: function() { complete(1); }
    },
    {
        test: App.isTouch,
        yep: '3.js'
        complete: function() { complete(2); }
    },
    {
        test: Modernizer.csstransitions,
        nope:4.js
        complete: function() { complete(3); }
    }
]);