2012-06-19 54 views
0

只有在設置變量後才嘗試顯示數據。在jQuery中設置.when和.done的函數序列

$("document").ready(function() { 
    function setdata() { 
     var mydata = '123'; 
    }; 

    $.when(setdata()).done(function() { 
     $(".content").text(mydata); 
    }); 
}); 
+0

設置變量已經是同步的,不需要使用'$ .when()'。 – lanzz

+0

我有一個似乎在變量設置之前運行的函數;我試圖確保有一個正確的序列 – nathanbweb

+1

如果你有這樣一個函數,它顯然不會在你的'ready()'處理程序中被調用。 – lanzz

回答

2

你不需要$.when在這種情況下,因爲你實際上並沒有傳遞給它一個承諾對象。

$("document").ready(function() { 
    var mydata; 
    function setdata() { 
     mydata = '123'; 
    }; 

    setdata(); 
    $(".content").text(mydata); 
}); 

setdata做的比您在問題中展示的要多嗎?我猜它確實是ajax請求,在這種情況下,它應該看起來像這樣:

$("document").ready(function() { 
    function setdata() { 
     return $.ajax(ajaxOptions); 
    }; 

    setdata().done(function(mydata){ 
     $(".content").text(mydata); 
    }); 
}); 
+0

@lanzz只是一個簡單的錯字 –

相關問題