Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery$.getScript()方法按给定顺序加载多个JS文件_Javascript_Jquery_Ajax_Momentjs_Daterangepicker - Fatal编程技术网

Javascript 使用jQuery$.getScript()方法按给定顺序加载多个JS文件

Javascript 使用jQuery$.getScript()方法按给定顺序加载多个JS文件,javascript,jquery,ajax,momentjs,daterangepicker,Javascript,Jquery,Ajax,Momentjs,Daterangepicker,我已经先加载了jQuery,并尝试使用下面的方法加载一些js文件 注意:“daterangepicker.js”需要“矩.js” 但我犯了个错误 未捕获类型错误:力矩不是函数 然后我尝试了第二种方法 $.when( $.getScript("https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js").done(function() { $.getScript("https://cdn.j

我已经先加载了jQuery,并尝试使用下面的方法加载一些js文件

注意:“daterangepicker.js”需要“矩.js

但我犯了个错误

未捕获类型错误:力矩不是函数

然后我尝试了第二种方法

$.when(
    $.getScript("https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js").done(function() {
        $.getScript("https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.js").done(function() {
            alert("scripts loaded");
        });
    }),
    $.getScript("1.js"),
    $.getScript("2.js"),
    $.getScript("3.js"),
    $.Deferred(function(deferred) {
        $(deferred.resolve);
    })
).done(function() {
    alert("All js files are loaded");
    $('input[name=\'time\']').daterangepicker();
});
这次我得到了

daterangepicker不是一个函数


因为“所有js文件都已加载”警报将排在第一位&“脚本加载”警报将排在第二位。

我实现了一个新的逻辑

function getScripts(scripts, callback, i) {
    i = i ? i : 0;
    $.getScript(scripts[i]).done(function() {
        ++i === scripts.length ? callback() : getScripts(scripts, callback, i);
    });
}

getScripts(
    [
        "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js",
        "https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.js",
        "1.js",
        "2.js",
        "3.js"
    ],
    function() {
        alert("all files are loaded");
        $('input[name=\'time\']').daterangepicker();
    });
工作如期进行

function getScripts(scripts, callback, i) {
    i = i ? i : 0;
    $.getScript(scripts[i]).done(function() {
        ++i === scripts.length ? callback() : getScripts(scripts, callback, i);
    });
}

getScripts(
    [
        "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js",
        "https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.js",
        "1.js",
        "2.js",
        "3.js"
    ],
    function() {
        alert("all files are loaded");
        $('input[name=\'time\']').daterangepicker();
    });