我正在使用jQuery的.load()用php文件中的表替换我页面上的div。我正在使用回调函数来运行另一个修改刚刚加载的数据的函数,但它在加载表之前运行该函数,导致函数什么都不做。
有没有办法可以强制回调在加载后运行?我每10秒运行一次.load(),所以我不能告诉它等待。
这是我正在尝试做的事情:
function fixSelected(){
$.each(selected, function(index, value) {
document.getElementById(value).innerHTML = '-';
});
}
function refreshTable() {
$('#tablefill').load('table.php', function(){
fixSelected();
});
}
变量selected
是一个数组,其中包含正在加载的表上几个按钮的ID。
答案 0 :(得分:-1)
您需要将回调函数作为load()函数的第三个参数传递,如下所示:
function fixSelected(){
$.each(selected, function(index, value) {
document.getElementById(value).innerHTML = '-';
});
}
function refreshTable() {
$('#tablefill').load('table.php', fixSelected);
}
我在这里找到了解决方案:
jQuery.load() doesn't work with a defined function as a callback?
参见这个jsFiddle的例子:
http://jsfiddle.net/bayoffire/kNWpD/1/
答案 1 :(得分:-1)
我在table.php中有一个$(document).ready(function () {
导致回调函数无效。不确定为什么会发生这种情况,但是删除它会解决所有问题。