Verstehen und Implementieren der automatischen Vervollständigung von jQuery mit AJAX-Quelle und AppendTo

Unten ist mein Versuch zu bekommenappendTo zur Arbeit mit jQuery Autocomplete mit AJAX-Quelle.

Ich habe mehrere Fragen, die hoffentlich vielen anderen helfen werden, die Schwierigkeiten haben, die richtige Art der Implementierung von Autocomplete mit und AJAX-Quelle zu verstehen.

1)source: function(request, response) {...} Was macht das? Warum wird es gebraucht?

2) Welches Format machtfunction(data){ response($.map (data, function(obj) { Daten zurücksenden in? Mir ist klar, dass die Daten im JSON-Format vorliegen, aber worum geht es.map? Ist das notwendig? Gibt es Vorteile?

3a) Bei VerwendungappendTo undrenderItemist es notwendig, die oben genannten zu habensuccess Daten zurückgegeben?

3b) Wie können Sie entweder oder abhängig von den obigen Daten appendTo und renderItem richtig verwenden, um die Formatierung und Anzeige Ihrer abgerufenen Werte zu ändern?

$(function() {
$( ".find_group_ac" ).autocomplete({
        minLength: 1,
        source: function(request, response) {
            $.ajax({
                url: "welcome/search/",
                data: { term: $(".find_group_ac").val()},
                dataType: "json",
                type: "POST",
                success: function(data){ response($.map
                        (data, function(obj) {
                            return {
                            label: obj.name + ': ' + obj.description,
                            value: obj.name,
                            id: obj.name
                };}));}
            });
        }
    }).data( "autocomplete" )._renderItem = function( ul, item ) {
            return $( "<li></li>" )
                .data( "item.autocomplete", item )
                .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
                .appendTo( ul );
        };
});

Dies mag eine Menge zu beantworten scheinen, aber ich bin sicher, es wird für viele Javascript-Neulinge und sicherlich für mich selbst wertvoll sein.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage