我在$(document).ready(function(){})中有以下函数,它运行良好并填充了很多字段,具体取决于查看的记录。问题是,在有很多结果的记录中,这会在加载站点上的许多图像(包括主徽标和加载指示符)之前执行。有没有办法确保此代码最后被调用?
$('.WorkstationCount').each(function (i, val) {
$.ajax({
url: 'details.svc/getWorkstationCounts',
type: 'GET',
data: { 'packageid': this.id },
dataType: 'json',
success: (function (el) {
return function (count) {
$(el).html(count.d);
};
})(this),
error: function (a, b, c) {
$('.Toast').html('Error Retreiving Workstation Count!');
}
});
});
我尝试将其包装在函数
中function populateCount() { }
然后调用
window.setTimeout("populateCount", 1);
但它根本不再填充数据。
答案 0 :(得分:2)
如果您需要在页面的所有图像都加载后发生某些事情(虽然我不明白为什么这是可取的),您可以使用window.onload
事件。
window.onload = function() { alert("Page loaded"); }
答案 1 :(得分:1)
window.setTimeout("populateCount", 1);
此行不正确。您不需要引号(或window.
)。它应该只是:
setTimeout(populateCount, 1);
当字符串传递给setTimeout
时,它会获得eval
d。应该是setTimeout("populateCount()", 1);
,但最好将函数传递给setTimeout
。