-fl0w-
Ensign
- Registriert
- Aug. 2012
- Beiträge
- 133
Hey,
ich habe ein Jquery Event auf ein Button gelegt, welches eine Suchfunktion aufruft. Die Suche erfolgt per AJAX (async = false) und das Ergebnis wird in per .append eingefügt. Nun möchte ich vor dem AJAX Request einen Ladescreen einblenden und danach wieder ausblenden( siehe Code). Aber das "Loading..:" wird nicht angezeigt. Falls ich das ".remove" entferne wird das "loading" auch erst zusammen mit den Suchergebnissen angezeigt... Ideen? Es scheint mir als ob zuerst die "fulltext()" Funktion ausgeführt wird und danach erst der "loading" Teil eingeblendet(und direkt wieder ausgeblendet) wird... Hat hier jemand eine Lösung dafür?
Event Handler:
Suchfunktion:
Problem gelöst. dataType = "json" muss durch dataType = "text" ersetzt werden sonst interpretiert er ein schon erhaltenes JSON nochmals als JSON und hat dann Probleme beim parsen!
ich habe ein Jquery Event auf ein Button gelegt, welches eine Suchfunktion aufruft. Die Suche erfolgt per AJAX (async = false) und das Ergebnis wird in per .append eingefügt. Nun möchte ich vor dem AJAX Request einen Ladescreen einblenden und danach wieder ausblenden( siehe Code). Aber das "Loading..:" wird nicht angezeigt. Falls ich das ".remove" entferne wird das "loading" auch erst zusammen mit den Suchergebnissen angezeigt... Ideen? Es scheint mir als ob zuerst die "fulltext()" Funktion ausgeführt wird und danach erst der "loading" Teil eingeblendet(und direkt wieder ausgeblendet) wird... Hat hier jemand eine Lösung dafür?
Event Handler:
Code:
$("#gosearch").on("click", function () {
$('#searchfield').after('<p class="primary alert loadfield">loading...</p>');
magic.search.fulltext();
$('.loadfield').remove();
});
Suchfunktion:
Code:
fulltext: function() {
$('#searchresults').html('');
var sName = $("#searchinput").val();
var request = $.ajax({
url: "/index.php/search/searchName/"+sName,
dataType:"json",
async: false
}).responseText;
var searchRes = $.parseJSON(request);
for(i=0;i<searchRes.length;i++){
$('#searchresults').append('<div class="centered eight columns default alert">\n\
<div class="three columns image rounded" >\n\
<img src="http://magicrepo.co.nf/img/'+searchRes[i][1]+'/'+searchRes[i][3]+'.full.jpg" />\n\
</div>\n\
<div class= "centered five columns>\n\
<p class="">'+searchRes[i][0]+'</p><p class="">'+searchRes[i][2]+'</p><p class="small">'+searchRes[i][8]+'</p>\n\
</div>\n\
\n\
</div>').fadeIn(8000);
}
}
Problem gelöst. dataType = "json" muss durch dataType = "text" ersetzt werden sonst interpretiert er ein schon erhaltenes JSON nochmals als JSON und hat dann Probleme beim parsen!
Zuletzt bearbeitet:
(gelöst)