Javascript jQuery.load()回调函数在完成之前运行
我使用jQuery的.load()将页面上的div替换为php文件中的表。我正在使用回调函数运行另一个函数,该函数修改刚刚加载的数据,但它在加载表之前运行该函数,导致该函数不执行任何操作。Javascript jQuery.load()回调函数在完成之前运行,javascript,jquery,Javascript,Jquery,我使用jQuery的.load()将页面上的div替换为php文件中的表。我正在使用回调函数运行另一个函数,该函数修改刚刚加载的数据,但它在加载表之前运行该函数,导致该函数不执行任何操作。 是否有一种方法可以强制回调在加载后运行?我让.load()每10秒运行一次,所以我不能让它等待 以下是我想做的: function fixSelected(){ $.each(selected, function(index, value) { document.getElementById(va
是否有一种方法可以强制回调在加载后运行?我让.load()每10秒运行一次,所以我不能让它等待 以下是我想做的:
function fixSelected(){
$.each(selected, function(index, value) {
document.getElementById(value).innerHTML = '-';
});
}
function refreshTable() {
$('#tablefill').load('table.php', function(){
fixSelected();
});
}
所选变量
是一个数组,其中包含正在加载的表上几个按钮的ID。您需要将回调函数作为load()函数的第三个参数传递,如下所示:
function fixSelected(){
$.each(selected, function(index, value) {
document.getElementById(value).innerHTML = '-';
});
}
function refreshTable() {
$('#tablefill').load('table.php', fixSelected);
}
我在这里找到了解决方案:
请参阅此JSFIDLE以获取示例:
我在table.php中有一个$(document).ready(函数(){
)导致回调函数无法工作。不确定为什么会发生这种情况,但删除它可以解决所有问题。我更喜欢使用.ajax(…);您可以在其中定义成功和错误函数。您的代码看起来是正确的。可能您正在其他地方调用fixSelected
。请提供一个演示来重现此问题。您认为在请求完成之前调用回调的原因可能重复?如果我在fixSelected之前或之后放置一个警报()()警报在加载之前出现。这更合适,因为您从另一个问题中获取了此答案,并在注释中标记为重复,而不是继续用相同的答案回答新问题。不幸的是,我还没有足够的声誉来评论问题。我向MOOcow102提供了运行的代码读取y复制并运行。这不起作用。出于某种原因,当回调函数spot中有任何内容时,它只在加载页面时运行,而不是在刷新table.php时运行。您是否查看了我在注释中向您显示的问题?您需要在函数中输入一个参数,以便将其删除wait@PWKad试着回答你发帖的问题d、 但它不起作用。