| Autor | Zpráva | ||
|---|---|---|---|
| paelkos Profil * |
Ahoj,
snažím se udělat našeptávač k vyhledávání - použil jsem tento plugin: http://tomcoote.co.uk/code-bank/jquery-json-suggestsearch-box/ http://tomcoote.co.uk/wp-content/CodeBank/Demos/JSONSuggestBox/demo.html Autor pluginu na muj dotaz bohužel neodpovídá, proto píšu sem. anonymni funkce slouži pro získáni dat ze serveru - muj problem je, že funkce skončí a vrátí prázdný výsledek dříve, než se dokončí ajax request. Data taham z jineho serveru, takže používám jsonp, který nepodporuje synchronní request. Napadá vás prosím někoho, jak tento problém řešit? před return jsem zkoušel různým způsobem čekat ale nefunguje to. Díky moc za jakékoliv nápady. Zde je kod: var result;
(‘input#input’).jsonSuggest(
function(text, wildCard, caseSensitive, notCharacter) {
var url = ‘http://mojeurl;
$.ajax({
cache: false,
url: url,
dataType: “jsonp”,
jsonp : “callback”,
success: function(data) {
result = data;
}
});
return result;
}, {ajaxResults:true});Moderátor Chamurappi: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
). |
||
| Chamurappi Profil |
#2 · Zasláno: 16. 7. 2010, 13:21:56
Reaguji na paelkose:
„používám jsonp, který nepodporuje synchronní request“ Naštěstí pro uživatele. Kéž by ho nepodporoval ani AJAX… „Napadá vás prosím někoho, jak tento problém řešit?“ Přizpůsobit se asynchronnímu chování. Zapomeň na return, musíš pracovat s callbacky.
|
||
| paelkos Profil * |
#3 · Zasláno: 16. 7. 2010, 13:51:36
Díky za odpověď.
Mohl bych poprosit ještě o upřesnění jakým způsobem v tomto případě použít callback? Javascript není moje silná stránka :( V dokumentaci k pluginu je tento příklad: $('input#suggestBox4').jsonSuggest( function(text, wildCard, caseSensitive, notCharacter) { // From here you can put your own logic in to say what results show. // For now I'm just going to return some dummy data. return [ {text:'View'}, {text:'the'}, {text:'source'}, {text:'for'}, {text:'this'}, {text:'one'} ]; }, {ajaxResults:true}); Díky moc! |
||
| Chamurappi Profil |
#4 · Zasláno: 16. 7. 2010, 14:44:30
Reaguji na paelkose:
Autor toho pluginu je čuně, nutí všechny, kdo chtějí dynamicky dotahovat data, k použití synchronních XMLHttpRequestů. Ve svých ukázkách schválně neukazuje, jak ajaxResults: true používat s AJAXem :-)
Zřejmě bych dokázal plugin opravit. |
||
| pavelkos Profil * |
#5 · Zasláno: 16. 7. 2010, 15:40:32
Díky moc za rady.
Objevil jsem plugin přímo v jQuery UI http://jqueryui.com/demos/autocomplete/ a ten už funguje jak má. Díky! |
||
|
Časová prodleva: 15 let
|
|||
0
).