2013-04-30 99 views
0

发生了某些事情,我不知道为什么会发生。我有这3个功能:Ajax调用完成后运行函数

app.progress(); 
app.success(); 
app.normal(); 

所有这三个在我的应用程序中更改状态块。我有这个$.post在我的其他功能之一,让我们说:

app.set : function() { 
    ... 
} 

在我set功能我想更新这样的状态块:

app.set : function() { 
    app.progress(); 
    $.post('ajax.php', function(){ 
     // do stuffs 
    }).done({function(){ 
     app.success(); 
     setTimeout(app.normal(), '2000'); 
    }) 
} 

但不知何故,我无法看到app.success,它跳到app.normal,当我删除app.normal我可以看到app.success

这是为什么?

回答

6

你打电话app.normal向右走,因为这是当你的括号添加到功能会发生什么,改变这种:

setTimeout(app.normal(), '2000'); 

setTimeout(app.normal, 2000); 

引用的函数,而不是调用它。