1

JSON形式のrottentomatoesから映画の提案を取得するためにオートコンプリートを使用しようとしています。しかし、以下のコードは何の提案も示していません。

<script>
var apikey = "5xq9w7z2mp7a6cnchkfy52yd";
var baseUrl = "http://api.rottentomatoes.com/api/public/v1.0";

var moviesSearchUrl = baseUrl + '/movies.json?apikey=' + apikey;
var query = "Rocky";

$(document).ready(function() {
$("#sample").autocomplete({
source: function( request, response ) {
         $.ajax({
           url: moviesSearchUrl + '&q=' + encodeURI(query),
           dataType: "jsonp",
           success: function(data) {
                     var movies = data.movies;
                     response(function(movies) {
                               return {
                                      label: movies.title,
                                      value: movies.title
                                      }
                     }));           
                    }
         });
        }
});
});
</script>

完全なページソースについては、https ://gist.github.com/2018447 また、提案リストに映画のサムネイルを含める必要があります。誰かがこれについて私を助けてもらえますか?

4

1 に答える 1

4

構文エラー(extra )があり、配列)を反復処理するための呼び出しがありませんでした(通常はを使用)。movies$.map()

これはどのように見えるべきかです(更新:ポスターのサムネイルを含みます

$("#sample").autocomplete({
    source: function( request, response ) {
        $.ajax("http://api.rottentomatoes.com/api/public/v1.0/movies.json", {
            data: {
                apikey: apikey,
                q: request.term
            },
            dataType: "jsonp",
            success: function(data) {
                response($.map(data.movies, function(movie) {
                    return {
                        label: movie.title,
                        value: movie.title,
                        thumb: movie.posters.thumbnail
                    }
                }));           
            }
        });
    }
}).data( "autocomplete" )._renderItem = function( ul, item ) {
    var img = $("<img>").attr("src", item.thumb);
    var link = $("<a>").text(item.label).prepend(img);
    return $("<li>")
        .data( "item.autocomplete", item )
        .append(link)
        .appendTo(ul);
};
​

ここでの実例-http://jsfiddle.net/df7tp/6/

于 2012-03-11T22:58:01.227 に答える