jQuery UI autocomplete Dropdown nicht angezeigt
Ich versuche zu verwenden die jQuery-UI-autocomplete-Funktion für die Suche von spotify ist die Musik-Bibliothek. Während alles geht gut, und ich bekomme eine erfolgreiche Antwort:
Gibt es keine drop-down-Vorschläge. Zum Beispiel war ich auf der Suche "Zeit" und das wollte ich sehen:
- Zeit von Hans Zimmer <--(Dies ist das, was ich suchte)
- Zurück in Zeit von Pitbull
- Elevate von Big Zeit Rush
etc. Hier ist mein JavaScript code:
<script>$(function() {$( "#spotify_song_search" ).autocomplete({source: function(request, response) {
$.get("http://ws.spotify.com/search/1/track.json", { q: request.term },function( data ) { alert(data); response(data);});
},success: function(data) {
//pass your data to the response callback
alert(data); response(data);
}});});</script>
Ich muss etwas falsch machen. Ich habe auch überprüft den jQuery docs hier: http://jqueryui.com/demos/autocomplete/ aber es gibt keine Erklärung, warum dies geschehen würde. Und ich fügte hinzu, alerts, um zu sehen, wenn würde ich mindestens eine Antwort erhalten, die ich tun, aber es gibt einfach zurück [object Object]
. Was muss ich tun, um die Anzeige von Suchergebnissen?
Fehler: Uncaught SyntaxError: Unexpected token ILLEGAL
on Line 417:
- Keine Fehler in der Registerkarte "Console"?
- Nein, keine Fehler-leider.
- Oh never mind, wird der status
OK
auf Ihre Registerkarte "Netzwerk". Ich guck in den code ein. - Vielleicht können Sie uns zeigen, ein wenig mehr code, vor allem Ihre
response()
Funktion rufen Sie 3 mal, und das markup, um in der Lage sein, um es zu reproduzieren. - Stellen Sie sicher, dass es der code ist tatsächlich gültig, die erste.
- Ja, die Frage ist nicht, über den Erfolg der Anfrage durch die Tatsache, dass es keine drop-down-Ergebnisse @Inkognito.
- Ich denke, dass OP haben sollte, die Funktion irgendwo definiert. Ich fragte nur für den rest der code etwa einer Stunde. Sie haben die
response()
Funktion definiert in Ihrem Dokument, richtig? - Sorry, ich bin nicht sicher, was die
response()
Funktion, die es gibt. Dieser code ist ein paar Tage alt, ich toke eine Pause für ein bisschen. Das ist alles die AutoVervollständigen-code. Ich glaube nicht, dass ich viel anderen JS in Bezug auf diesen. Ich nehme es heraus. - Ich sehe. Ein Blick auf die Dokumentation, es gibt tatsächlich eine Antwort-Funktion in der Quelle.
- Sie müssen formatieren Sie die response-Daten, die ich annehmen, ist in der
response()
Methode. jQueryUI erwartet ein bestimmtes format aus dersuccess()
Funktion und wenn es nicht mit dem übereinstimmt, werden die Ergebnisse nicht angezeigt. Ich vermute, dass die Konvertierung von Spotify-format, um das erwartete format ist nicht korrekt. Werfen Sie einen Blick auf die Dokumentation, insbesondere der Remote-Datenquelle und einem Remote-JSONP-datasource und Blick auf die Registerkarte "Netzwerk" in der Konsole zu sehen, die response-Daten-format.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das autocomplete-widget erwartet Daten werden formatiert in einer ganz bestimmten Art und Weise, damit es analysiert werden kann. Das array, das Sie liefern oder pass der
response
callback muss:(Siehe AutoVervollständigen in der Dokumentation unter "Übersicht" /"Erwartete Daten-format" für weitere Informationen)
Den typischen Weg, dies zu tun, wenn Sie eine Datenquelle, die Sie nicht ändern können, ist die Verwendung
$.map
für die Transformation der Ergebnisse in ein format, dass AutoVervollständigen erwartet:Beispiel: http://jsfiddle.net/ANmUs/ (Hinweis: dies scheint nicht zu funktionieren, im Firefox jetzt; kann es aufgrund der Größe der Antwort. Es funktioniert in Chrome, obwohl)
Uncaught SyntaxError: Unexpected token ILLEGAL
. Ich denke, es hat etwas zu tun mit der$.map
Teil des Codes.