繁体   English   中英

等待.load()完成

[英]Wait until .load() is complete

我目前正在尝试生成一个网页,该网页通过.load事件调用一些数据,然后执行任务。 我有一个称为intholder的div,一个PHP页面生成了一些我想放入该div的输出。 我得到的代码如下:

var numCol = floor(window.innerWidth / 200);

if(numCol > 5){numCol = 5;}

var colWidth = 100/numCol;

$("#intHolder").load("/scripts/loader.php?n=" + numCol + "&w=" + colWidth);

然后,PHP文件生成一系列<select>元素(其中的numCol号),并用数据库中的内容填充它们。 每个选择框都有一个预先选择的值(由数据库查询确定),从中,还需要在页面上加载更多内容。

每个选择框都有一个唯一的ID( canvasSeln ,其中n递增),以及一个值,该值包含一个1位数的类型指定和一个用于在数据库表中查找的文本值。 最后,初始脚本还会生成一系列div,这些数据将进入其中,名为canvasLisn ,其中n与选择框相关。 以下是我为此准备的javascript:

for (var i=1;i<=$num;i++){ 

        var rawSel = document.getElementById("canvasSel" + i).value;

        var selNow = rawSel.substring(1);
        var selType = parseInt(rawSel.substring(0,1));

        if(selType == 1){
            $("#canvasLis"+ i).load("/scripts/profile.php?x=" + selNow);
        }else if(selType == 2){
            $("#canvasLis"+ i).load("/scripts/product.php?x=" + selNow);
        }else if(selType == 3){
            $("#canvasLis"+ i).load("/scripts/department.php?x=" + selNow);
        }else if(selType == 4){
            $("#canvasLis"+ i).load("/scripts/customer.php?x=" + selNow);
        }

}

我尝试将代码放入由初始.load回调触发的函数中,但是它在绘制对象之前运行,因此找不到要查找的值。 有没有什么办法可以迫使它不仅在.load完成之后而且还已经绘制了对象之后运行?

这是带有回调的版本:

var numCol = floor(window.innerWidth / 200);

if(numCol > 5){numCol = 5;}

var colWidth = 100/numCol;

$("#intHolder").load("/scripts/loader.php?n=" + numCol + "&w=" + colWidth, function(){

    for (var i=1;i<=numCol;i++){ 

        var rawSel = document.getElementById("canvasSel" + i).value;

        var selNow = rawSel.substring(1);
        var selType = parseInt(rawSel.substring(0,1));

        if(selType == 1){
            $("#canvasLis"+ i).load("/scripts/profile.php?x=" + selNow);
        }else if(selType == 2){
            $("#canvasLis"+ i).load("/scripts/product.php?x=" + selNow);
        }else if(selType == 3){
            $("#canvasLis"+ i).load("/scripts/department.php?x=" + selNow);
        }else if(selType == 4){
            $("#canvasLis"+ i).load("/scripts/customer.php?x=" + selNow);
        }

    }


});

提前致谢。

您说您尝试了回调,但没有显示。 您是否尝试过此表格-

$("#canvasLis"+ i).load("/scripts/profile.php?x=" + selNow, function() {
    // do stuff when load completes
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM