Was sind die "response" und "request" - Argumente, die in jQuery-UI-Autocomplete ' s "Quelle" callback?
Ich freu mich auf die AutoVervollständigen-tutorial, und ich habe ein paar Fragen: http://jqueryui.com/demos/autocomplete/#option-disabled
$( "#tags" )
//don't navigate away from the field on tab when selecting an item
.bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "autocomplete" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
minLength: 0,
source: function( request, response ) {
//delegate back to autocomplete, but extract the last term
response( $.ui.autocomplete.filter(
availableTags, extractLast( request.term ) ) );
},
focus: function() {
//prevent value inserted on focus
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
//remove the current input
terms.pop();
//add the selected item
terms.push( ui.item.value );
//add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
So verstehe ich die Parameter für die Quelle ist request
und response
. Werden diese reservierten Schlüsselwörter? Ich konnte nicht finden, dass irgendetwas bei der Eingabe dieser in google. Ich bin nicht sicher, was ist der request und der response übergeben hier. Ist die Anfrage nur greifen Sie den Eingang? Wo kann ich Lesen, mehr über diese?
- Ich würde die Konsole viele dieser Konsole.log(response). Sie könnten dann sehen, was die Objekte sind. Auch an der Konsole.log(typeof response) könnte dir auch helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
request
undresponse
sind einfach die Namen, die der Autor des Codes entschieden hat, geben die beiden formalen Parameter der callback zugewiesenQuellcode
Möglichkeit, das autocomplete-widget:Nein,
request
oderresponse
sind nicht reservierte Schlüsselwörter – wenn Sie waren, konnte man Sie nicht verwenden Sie Sie als Funktion parameter-Namen..Was hier Los ist, ist ziemlich einfach, und wenn du mal nichts tun, in die Knoten, die Sie sehen das Muster. Es ist async JavaScript.
Du bist die übergabe einer anonymen Funktion
source
. Diese Funktion wird immer aufgerufen, wenn AutoVervollständigen muss für die Abfrage der Datenquelle (in anderen Worten, der Benutzer etwas eingetippt).Parameter der Funktion sind
request
undresponse
.request
ist einfach die AutoVervollständigen-Informationen anfordert;request.term
ist die Abfrage (was der Benutzer eingegeben). Es ist bis zu Ihnen, wie die Umsetzung der Suche – vielleicht haben Sie eine lokale variable mit Möglichkeiten oder Sie könnte ein AJAX-Aufruf an den server.Nun der wichtige Teil: wenn Sie eine AJAX-Aufrufs, können Sie nicht einfach
return
einen Wert vonsource()
da die Funktion zurück, lange bevor der AJAX-Aufruf abgeschlossen ist. Das ist, warum es eineresponse
parameter.response
ist eine Funktionsreferenz übergeben, um Ihresource()
Funktion, die aufgerufen wird, wenn Sie die Antwort auf die Anfrage. Durch die Magie der Verschlüsse, die Sie können diese Funktion aufrufen, von innen ein AJAX-callback.response
(das könnte weniger verwirrend benannt werdencallback
) erwartet ein array von strings oder Objekten mitlabel
undvalue
Eigenschaften. Es wird sich zeigen diese Ergebnisse in der AutoVervollständigen-dropdown-Liste.Alles zusammen:
Es ist klar dokumentiert in der jQuery-UI-autocomplete-Seite.
http://jqueryui.com/demos/autocomplete/