我正在尝试使用jQuery .get()
方法获取文件内容,如下所示
var news;
$.get('news.txt', function (dat) {
news = dat;
if ($('#removeN').is(':checked')) {
news = "";
}
alert(news) // Displaying exact result;
});
alert(news) // Displaying undefined..; Why?
有人请澄清我的疑问。
答案 0 :(得分:4)
A JAX 异步。
在收到服务器的回复之前,您的最后一行会运行。
答案 1 :(得分:3)
var news;
$.get('news.txt', function (dat) {
news = dat;
if ($('#removeN').is(':checked')) {
news = "";
}
alert(news) // BEFORE THIS!
});
alert(news) // THIS EXECUTES
如果你想对新闻做点什么,请改用它:
$.get('news.txt', function (dat) {
news = dat;
if ($('#removeN').is(':checked')) {
news = "";
}
doSomething(news) // Displaying exact result;
});
var doSomething = function(data) {
alert(data);
}
答案 2 :(得分:2)
你也应该能够解决问题..
var news;
$.get('news.txt', function (dat) {
//process news
}).done(function(dat){
//display news, or maybe more processing related to this particular function block
alert(news);
}).fail(function(){
//oops, something happened in attempting to get the news.
alert("failed to get the news");
}).always(function(){
//this eventually gets called regardless of outcome
});
等
答案 3 :(得分:1)
$ .get的第二个参数是回调。本质上$ .get正在做的是为内容加载事件设置一个事件处理程序,并说“这是触发此事件时我想要运行的函数。”就像其他人所说的那样,它还没有解雇那个事件,所以代码会一直在搜索并找到你未初始化的变量。