javascript - 同步使用 getScript

标签 javascript jquery ajax getscript

我正在编写一个需要广泛使用 getScript 的引擎。为了便于使用,我已将其插入其自己的函数中,但现在我需要确保函数本身是同步的。不幸的是,我似乎无法让 getScript 等到它加载的脚本实际完成加载后再继续。我什至尝试在调用之前将 jQuery 的 ajax asynch 属性设置为 false。我正在考虑使用 jQuery 的何时/完成协议(protocol),但我似乎无法理解将其放置在函数内部并使函数本身同步的逻辑。任何帮助将非常感激!

function loadScript(script){
//Unrelated stuff here!!!
$.when(
$.getScript(script,function(){
    //Unrelated stuff here!!!
})).done(function(){
    //Wait until done, then finish function
});
}

循环代码(根据请求):

for (var i in divlist){
        switch($("#"+divlist[i]).css({"background-color"})){
            case #FFF:
            loadScript(scriptlist[0],divlist[i]);
            break;
        case #000:
            loadScript(scriptlist[2],divlist[i]);
            break;
        case #333:
            loadScript(scriptlist[3],divlist[i]);
            break;
        case #777:
            loadScript(scriptlist[4],divlist[i]);
            break;
    }
}

最佳答案

这对我有用,也可能对你有帮助。

$.ajax({
    async: false,
    url: "jui/js/jquery-ui-1.8.20.min.js",
    dataType: "script"
});

基本上,我只是绕过了速记符号并添加到 async: false

关于javascript - 同步使用 getScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14783046/

相关文章:

javascript - 全日历事件总是出现在全天事件时段以及如何编辑

php - 使用图像作为文本

jquery - 滚动条在侧边导航中被截断

javascript - PHP AJAX 发布/获取

javascript - 通过ajax将pdf文件从PHP发送到JS

JavaScript,使用函数更改 HTML <p> 标记中显示的文本

javascript - 谷歌地图 : Issue regarding marker icons and geocoding

jquery - Flexslider和scrollspy互相冲突

javascript - 使这个 jquery 批量复选框代码更通用

javascript - 使用ajax从函数重新加载php数据