2011-03-22 55 views
0

我在使用Javascript的範圍有問題。看看這個代碼,例如:基本的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

可以請您給一個鏈接到工作演示以便更好地理解這個問題的? – 2011-03-22 02:16:08

回答

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"); 
    }); 
}); 
+0

完美工作。謝謝! – 2011-03-22 02:28:57