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

Execute callback after modernizr/yepnope has loaded all files

本文关键字:文件 执行 回调 modernizr yepnope 加载      更新时间:2023-09-26

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

以下内容是这篇文章建议的,传达了我的意图,但实际上不起作用。完整的函数在 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
    }
]);

提前为如此便宜的伎俩道歉,但这是我能想到的最好的。不过,它绝对可以改进。

嵌入它或扩展 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); }
    }
]);