0

以下に示すアプローチ (つまり、別のソース関数とデータの中間変数) を使用して jQuery オートコンプリートを実装しようとしています。現在、オートコンプリート関数のソース部分にデータを取得しようとしています。

以下のコードは 1 つの致命的な問題で動作します。最初のキー ストロークで未定義のreturnData変数が返されます。誰が何が起こっているのか説明できますか?

var returnData;
function sourceFn() {
    return $.ajax({
        url: //REST URL,
        dataType: "jsonp",
        async: false,
        data: {
            featureClass: "P",
            style: "full",
            maxRows: 12,
            name_startsWith: request.term
        },
        success: function (data) {
            returnData = data;
        },
    })
}
}

$("input#search-input").bind("autocompleteselect", jQuery.proxy(function (event, ui) {}, this)).autocomplete({
    appendTo: "#yt-result-list",
    source: function (request, response) {
        sourceFn(request, response).done(alert("returnData: " + JSON.stringify(returnData)));

    }
}).data("autocomplete")._renderItem = jQuery.proxy(function (ul, item) {
    alert(item);
}, this)

});
});
});
4

1 に答える 1

0

オートコンプリートを初期化するときに を指定してみてくださいminLength: 0。returnData の値をチェックして、サーバーから json が返されるかどうかを確認してください (firebug を使用)。1文字だけでajax呼び出しから取得していないように見えますが、オートコンプリートはsourceFn()正しくトリガーされています。

于 2013-03-16T00:31:24.120 に答える