jQuery回调叫得太早了?

这是我正在使用的代码:

function load(toLoad, area){ $(area).html('Loading'); loadContent(); function loadContent() { $(area).load(toLoad,'',sorter()) }; function sorter() { alert('s'); $("#myTable").tablesorter({ widgets: ['zebra'] }); }; return false }; 

调用加载函数时,警报会在显示加载图像时显示,而不是在加载完成后显示。

这有什么问题?

我认为语法有点偏僻。

代替

 function loadContent() { $(area).load(toLoad,'',sorter()) }; 

尝试

 function loadContent() { $(area).load(toLoad,'',sorter) }; 

将函数定义移到load函数之外。 应该是这样的

 function load(toLoad, area){ $(area).html('Loading'); loadContent(); } function loadContent() { $(area).load(toLoad,'',sorter()) } function sorter() { alert('s'); $("#myTable").tablesorter({ widgets: ['zebra'] }); }; return false } 

尝试以下(在匿名函数中的load函数中包装对sorter()的调用)

 function load(toLoad, area){ $(area).html('Loading'); loadContent(); function loadContent() { $(area).load(toLoad,'',function() {sorter()}) }; function sorter() { alert('s'); $("#myTable").tablesorter({ widgets: ['zebra'] }); }; return false };