将ajax保存全局变量,jquery – 将ajax数据存储到全局变量中

它是空的,因为在调用getXml时,ajax请求尚未完成,请记住ajax是异步的.解决它的一种方法是强制它同步:

$.ajax({

async: false,type: "GET",success : function(data) {

xml = data.html;

alert(xml); // WORKS

}

});

回应评论:

I want perform AJAX onclick,then store data.html for other mouse events

var dataStore = (function(){

var html;

function load(){

$.ajax({

async: false,success : function(data) { html = data.html; }

});

}

return {

load : function() {

if(html) return;

load();

},getHtml: function(){

if(!html) load();

return html;

}

}

})();

$(element1).click(function(){

dataStore.load();

});

$(element2).click(function(){

var html = dataStore.getHtml();

// use html

});