2013-08-04 68 views
-1

我正在使用jQuery的.load()来替换我的页面上的div与来自php文件的表格。我使用回调函数来运行另一个函数,该函数修改刚刚加载的数据,但是它在加载表之前正在运行该函数,导致该函数无法执行任何操作。
有没有办法强制加载后运行回调?我使用.load()每10秒运行一次,所以我不能让它等待。jQuery.load()回调函数完成之前运行

这里是我想要做的事:

function fixSelected(){ 
    $.each(selected, function(index, value) { 
    document.getElementById(value).innerHTML = '-'; 
    }); 
} 

function refreshTable() { 
    $('#tablefill').load('table.php', function(){ 
     fixSelected(); 
    }); 
} 

变量selected是含有正被装载在桌子上的几个按钮的ID的数组。

+2

我更喜欢使用.ajax(...);您可以在其中定义成功和错误功能。 – frenchie

+0

您的代码看起来正确。也许你正在别处调用'fixSelected'。请提供重现问题的http://jsfiddle.net/演示。 –

+0

可能重复的[JQuery .load()回调函数](http://stackoverflow.com/questions/3973933/jquery-load-callback-function) –

回答

-1

我有一个$(document).ready(function() {在table.php导致回调函数只是不工作。不知道为什么发生这种情况,但删除它解决了这一切。

-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/

+0

会更合适,因为您从另一个问题的这个答案标记在评论和标志作为一个副本,而不是继续用相同的答案回答新问题。 –

+0

很抱歉,我还没有足够的知名度评论一个问题。我为MOOcow102提供了运行代码,随时可以复制和运行。 – lukassteiner

+0

这没有奏效。出于某种原因,当我在回调函数中有任何东西时,它只会在加载页面时运行,而不是在刷新table.php时运行。 – MOOcow102

相关问题