jQuery在循环之前等待映像加载

时间:2015-08-19 16:57:30

标签: javascript jquery

这是我的jsjq代码:

for (i = 0; i < data.length; i++) {
    var $nItem = $('.Search_result_template').clone().removeClass("Search_result_template");
    src = Link_DB + data[i]._id + "/" + ReadConfigurationSettings_img_Upload_Name()+"0";
    $("<img/>")
        .on('load', function () {
            alert("image loaded correctly");
            alert("src: " + src);
            $nItem.find('.var_link_img').attr('href', src);
        })
        .on('error', function () {
            alert("error loading image"); var src = ReadConfigurationSettings_Link_Default_img();
            $nItem.find('.var_link_img').attr('href', src);
        })
        .attr("src", src);
    $nItem.find('.var_link_img').text('Image');
    $nItem.attr("id", "Search_result_template_" + i);
    //alert($nItem.html());
    $Search_Result.append($nItem);
}

如果图像加载成功或出现错误,则在测试之前迭代循环。因此,如果我有许多元素,则src与每个图像链接都没有正确关联。

我怎么能等待:

$("<img/>").on('load', function () {});

要执行所以我可以获得$nItem.find('.var_link_img').attr('href', src);

的好src

此代码的结果显示第一个链接(i==0)为null,第二个链接(i==1)显示为先例的src。

0 个答案:

没有答案