我試圖使用$ .get()從服務器檢索數據,並將其分配給一個變量以使用它。例如:
$.get('htmllink', {}, function(results){
//do stuff here
});
var morestuff = ; //$.get() data goes here
問題是,我無法得到任何東西在圓括號之外工作。一切都被視爲內部變量或東西。我錯過了什麼?
我試圖使用$ .get()從服務器檢索數據,並將其分配給一個變量以使用它。例如:
$.get('htmllink', {}, function(results){
//do stuff here
});
var morestuff = ; //$.get() data goes here
問題是,我無法得到任何東西在圓括號之外工作。一切都被視爲內部變量或東西。我錯過了什麼?
您需要在回調函數中完成所有處理。這是因爲對$.get
的調用僅啓動一個異步請求,然後在請求開始後但在完成之前執行下一行(var morestuff = ...
)。
$.get('htmllink', {}, function(results){
//do stuff with results in here
});
這裏的問題是$ .get請求是異步(Ajax),所以這裏有一個時間問題。
var morestuff =
將在Ajax調用返回之前運行,因此您將不具有要分配的值。
你必須在回調Ajax請求的結果進行交互,以訪問它
$.get('htmllink', {}, function(results){
//all code that depends on results must run inside here
});
//you can't execute code here that depends on the Ajax call
爲什麼你不能指定變量的回調裏面,做你的事情嗎?什麼阻止你。?你能提供更多的案例嗎? – mohkhan
這看起來像一個類似的情況,我會檢查出來。我試圖將它分配給外面的東西,因爲我缺乏知識導致了一些奇怪的問題。我會仔細研究一下併發布更新。 – Alex