Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将远程数据传递到自动完成_Jquery_Jquery Ui_Autocomplete_Jquery Autocomplete - Fatal编程技术网

Jquery 将远程数据传递到自动完成

Jquery 将远程数据传递到自动完成,jquery,jquery-ui,autocomplete,jquery-autocomplete,Jquery,Jquery Ui,Autocomplete,Jquery Autocomplete,我在facebook好友自动建议中使用了这段代码。它可以工作,但速度太慢,因为每次自动完成功能都会从远程位置搜索数据 是否有其他方法通过保存变量并将其传递给.autocomplete函数来传递远程数据 后来,我尝试将远程数据保存到变量中,但无法将变量传递到自动完成 jQuerydocument.readyfunction{ $(document).ready(function () { $("#example").autocomplete("https://graph.fa

我在facebook好友自动建议中使用了这段代码。它可以工作,但速度太慢,因为每次自动完成功能都会从远程位置搜索数据

是否有其他方法通过保存变量并将其传递给.autocomplete函数来传递远程数据

后来,我尝试将远程数据保存到变量中,但无法将变量传递到自动完成

jQuerydocument.readyfunction{

 $(document).ready(function () {
          $("#example").autocomplete("https://graph.facebook.com/me/friends?access_token=" + accessToken + "&callback=?", {

               width: 250,
               height: 400,
               max: 8,
               dataType: 'jsonp',
              cacheLength: 10,
               minChars: 1,
               parse: function (data) {
                   var rows = new Array();
                   data = data.data;
                   for (var i = 0; i < data.length; i++) {
                       rows[i] = { data: data[i], value: data[i].name, result: data[i].name };
                   }
                   return rows;
               },
               formatItem: function (data, i, n, value, text, a, b, c, d) {
                   var x = getImage(data.id);
                   return "<div class='test2'><img class='test' width='32px' height='32px' src='" + x + "'></img><span>" + data.name + "</span></div>";
               },

          }
             ).result(function (evnet, item) {
                 alert(item.id);       
            });
     });

     <input type="text" id="example"/>
您可以检索完整的好友列表并将其存储在本地。然后,不必进行远程呼叫,只需搜索本地数据即可。 同时设置noCache:false,它将缓存请求并首先在缓存中搜索 请尝试使用良好的网络连接: 编辑: 试试这个。在这里,我将结果存储在userList变量中,该变量可以用作自动完成源

var aToken = document.getElementById('aToken').value;
jQuery.getJSON("https://graph.facebook.com/me/friends?access_token="+aToken, function(data) {
    var data = data;
});
    jQuery("#name_inp").autocomplete({
       width: 500,
       height: 200,
   max: 5000,
   source: data,
        dataType: 'jsonp',
        cacheLength: 10,
       minChars: 1,
        parse: function (data) {
            var rows = new Array();
           data = data.data;
            for (var i = 0; i < data.length; i++) {
                rows[i] = { data: data[i], value: data[i].name, result: data[i].name };
           }
             return rows;
         },
        formatItem: function (data, i, n, value, text, a, b, c, d) {
            var x = getImage(data.id);
             return "<div class='test2' onclick='return getId("+data.id+");'><span>" + data.name + "</span></div>";
       },

   }
     )
 });
或者你可以试试这个

$(function() {
        userList = null; 
        $.getJSON("https://graph.facebook.com/me/friends", {access_token:access_token,callback:"?"}, function(users) {
                 userList = users;
             });  
    });     

我从未使用过Facebook API,所以不确定要传递哪些参数。

我尝试了$.getJSON,但我无法将变量传递到autocomplete。请在此处共享您的代码!当我提醒userList时,它在$.getJSON函数外显示null。第二个不好,每当我键入示例输入框时,它将再次获取远程调用的数据,加载它需要时间。它与上面的代码类似。@NathanSri:很抱歉,我复制了错误的行。我已经更新了我的答案,让我知道它是否有效。@NathanSri:是的,但它是URL itslef中的passign变量。
$(function() {
        userList = null; 
        $.getJSON("https://graph.facebook.com/me/friends?access_token=" + accessToken + "&callback=?",function(users) {
                 userList = users;
             });  
    });