0

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

这篇文章提出了以下建议,并传达了我的意图,但实际上并没有起作用。complete 中的函数在 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
    }
]);
4

1 回答 1

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); }
    }
]);
于 2013-10-01T00:03:27.127 回答