Do something after function is complete
Dit werkt prima tenzij het een keer even duurt voordat de items uit de database zijn geladen. Het scrollpunt blijft dan onderaan de pagina staan en blijft iedere keer 10 items onderaan bijvoegen en dit zijn soms heel veel items in een keer.
Ik wil dus dat de tweede Ajax post pas gebeurd wanneer LoadNewsPage(); echt items heeft geladen en weergeven want dan is de bodem van mijn pagina veranderd.
Iemand een idee?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function LoadNewsPage() {
// Load Newspage
var sessionlang = localStorage.getItem('Lang');
var sessionmeasure = localStorage.getItem('Measurement');
var sessionid = localStorage.getItem('Session');
$.ajax({
type: "POST",
url: url + "/includes/page-news.php",
data: {lang: sessionlang, measure: sessionmeasure, sessionid: sessionid},
success: function(response){
$("#page-news").html(response);
}
});
}
$(".footer-menu-news").click(function() {
LoadNewsPage();
if ($("#page-news").is(":visible")) {
start = 0;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
var sessionlang = localStorage.getItem('Lang');
var sessionmeasure = localStorage.getItem('Measurement');
var sessionid = localStorage.getItem('Session');
start = start + 10;
var limit = 10;
$.ajax({
type: "POST",
url: url + "/formhandling/show_news.php",
data: {lang: sessionlang, measure: sessionmeasure, sessionid: sessionid, start: start, limit: limit},
success: function(response){
$("#page-news .subbody").append(response);
}
});
}
});
}
});
// Load Newspage
var sessionlang = localStorage.getItem('Lang');
var sessionmeasure = localStorage.getItem('Measurement');
var sessionid = localStorage.getItem('Session');
$.ajax({
type: "POST",
url: url + "/includes/page-news.php",
data: {lang: sessionlang, measure: sessionmeasure, sessionid: sessionid},
success: function(response){
$("#page-news").html(response);
}
});
}
$(".footer-menu-news").click(function() {
LoadNewsPage();
if ($("#page-news").is(":visible")) {
start = 0;
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
var sessionlang = localStorage.getItem('Lang');
var sessionmeasure = localStorage.getItem('Measurement');
var sessionid = localStorage.getItem('Session');
start = start + 10;
var limit = 10;
$.ajax({
type: "POST",
url: url + "/formhandling/show_news.php",
data: {lang: sessionlang, measure: sessionmeasure, sessionid: sessionid, start: start, limit: limit},
success: function(response){
$("#page-news .subbody").append(response);
}
});
}
});
}
});
Gewijzigd op 12/11/2017 10:37:05 door Danny von Gaal
Hm... een Engelse titel ;-)?
Maar ik vraag me dus af hoe je er in javascript/JQuery vanuit kan gaan dat een ajax request voltooid is voor je iets anders kan doen.
Gewijzigd op 12/11/2017 12:28:40 door Danny von Gaal
Gewoon even een vlaggetje hijsen:
Precies, houd bij of je bezig bent.
Ik had ook al eerder wat geprobeerd met een vlaggetje te maken maar kreeg het niet werkend. Ik controleerde toen op het vlaggetje na ipv tegelijkertijd.
Misschien dat ik dat fout deed. thnx
Gewijzigd op 15/11/2017 10:45:37 door Danny von Gaal