2013-04-30 5 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); 

ссылки на функцию вместо вызова Это.

Смежные вопросы