当前位置:  开发笔记 > 编程语言 > 正文

如何在执行下一行之前等待执行完成

如何解决《如何在执行下一行之前等待执行完成》经验,为你挑选了2个好方法。

标题说明了一切.我找到了一些答案(关于回调等等),但我不知道如何将它应用到我的代码中.

问题:如何$( "#layout-grid" ).load(layout);在执行下一行之前等待完成?

最后一行的警报不会在第一次执行时显示,因为$( "#layout-grid" ).load(layout);尚未完成加载.但是,警报会在第二次执行时正确显示.

function setLayout(selectedLayout) {
    layout += selectedLayout;
    $( "#layout-grid" ).load(layout); // this load is not finished yet before alert
    var top_level_div = document.getElementById('layout');
    var count = top_level_div.getElementsByTagName('div').length;
    alert(count);
}

frosty.. 6

您可以将.load()调用传递给第二个参数,这是一个在完成后将触发的回调.看这里:

function setLayout(selectedLayout) {
    layout += selectedLayout;
    $( "#layout-grid" ).load(layout, function(){
        var top_level_div = document.getElementById('layout');
        var count = top_level_div.getElementsByTagName('div').length;
        alert(count);
    }); 
}

希望这可以帮助.



1> frosty..:

您可以将.load()调用传递给第二个参数,这是一个在完成后将触发的回调.看这里:

function setLayout(selectedLayout) {
    layout += selectedLayout;
    $( "#layout-grid" ).load(layout, function(){
        var top_level_div = document.getElementById('layout');
        var count = top_level_div.getElementsByTagName('div').length;
        alert(count);
    }); 
}

希望这可以帮助.



2> lleaff..:

$.load()采用可选的回调参数.您必须在函数中完成加载后需要执行的代码,并将该函数传递给$.load.

你的例子看起来像那样:

function setLayout(selectedLayout) {
    layout += selectedLayout;
    $( "#layout-grid" ).load(layout, function afterLoad() {
        var top_level_div = document.getElementById('layout');
        var count = top_level_div.getElementsByTagName('div').length;
        alert(count);
    }); 
}

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有