0

私はjqueryオートコンプリートを使用しています.ajaxリクエストが完了すると、jqueryはレスポンスでjsonpCallbackを呼び出します.$.eachでデータを使用するためにjsonpCallback(data)関数を配置する場所を提案できます

$(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
            });

                var suggestions = [];  

                //process response  
                $.each(data, function(i, val){       //how do I get data variable                         
                suggestions.push(val.value); });

                 add(suggestions);
            }
});  
4

2 に答える 2

1

によると:jquery api 「成功ブロック」を実装する必要があります

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});

あなたの例のために:

var suggestions = [];  
$(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
                  success: function(data) {

                    $.each(data, function(i, val){                         
                    suggestions.push(val.value); });
                          add(suggestions);
                    }
                 }
            });



});  

//編集: おそらくこれが役立つかもしれません: jsonpcallback

于 2012-08-22T08:56:27.053 に答える
0
    $(".autoComplete").autocomplete({ source: function(req, add){

            $.ajax({
                  type: "GET",
                  url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
                  dataType:"jsonp"
    success: function(data) 
            {
                alert('Here is my data' +  data);
            }


            });

}); 

成功関数をajax呼び出しに追加する必要があります。つまり、GETリクエストが成功した場合は、次の手順を実行して、データを反復処理するために.eachループを配置します。

エラーブロックなどのコードのデバッグに役立つ追加のブロックもあります。

于 2012-08-22T08:59:33.310 に答える