2013-02-25 66 views
1

我想執行一個ajax請求,當它完成時,將返回的HTML附加到一個div,並且一旦數據被追加,執行另一個ajax請求將會反過來將內容添加到之前附加的HTML中。但顯然我有一些語法錯誤。我錯誤地鏈接then()done()

$.when(append_line_item()) 
.then(function (line_item_data) { 
    $('#line_items').append(line_item_data)} 
    .done(populateMainProductsSelect()) 
); 

回答

2

你過思考它,你不需要$.when$.then在這種情況下。

// assuming append_line_item() returns a promise object 
append_line_item().done(function(line_item_data){ 
    $('#line_items').append(line_item_data); 
    populateMainProductsSelect(); 
}); 

的語法錯誤發生在這裏:

done(populateMainProductsSelect()) 

你只需要刪除()

done(populateMainProductsSelect) 
特別
+0

,附操作是同步的,不是異步,所以你可以調用在'.append()'之後的第二個AJAX函數。 – Alnitak 2013-02-25 15:35:29

+0

然後是的,這是一個承諾對象。 jqXHR對象有一個.promise方法,它返回一個很酷的承諾對象 – 2013-02-25 15:36:38

+0

。我認爲它是自動生成的。謝謝。 – 1252748 2013-02-25 15:37:26

相關問題