我在Javascript中遇到了范围问题。看看这段代码,例如:
$(function() {
var items = "GLOBAL";
$('.add').click(function() {
$.post("main/get", { 'get' : 'all' },
function(data){
items = String(data.result);
items = items.split(' *** ');
alert(items);
}, "json");
alert(items);
return false;
});
$(".add").autocomplete({
source: items
});
});
我正在尝试自动完成工作,而且几乎就是这样。唯一的问题是我似乎无法更改最内层功能之外的项目。第一个警报给了我正在寻找的东西,但第二个警报给了我“全球”。底部自动完成部分必须能够访问它。
感谢任何帮助!
谢谢!
答案 0 :(得分:2)
这不仅仅是一个范围问题。由于您的请求很可能异步发生(除非另有配置),因此无论如何都不会以这种方式工作。你必须在回调函数中初始化自动完成,一旦你的AJAX请求完成就会调用它:
$(function() {
$('.add').click(function() {
$.post("main/get", { 'get' : 'all' },
function(data){
var items = String(data.result);
items = items.split(' *** ');
$(".add").autocomplete({
source: items
});
}, "json");
});
});