Hallo
Ik ben wat aan het uitproberen met Object Oriented Programming in javascript, stukje code:
Even toelichten: De functie InitSlideshow wordt uitgevoerd bij een onload event. De functie maakt eerst een object van Slideshow en roept dan de functie AjaxRequestImages() op. Deze functie hoeft enkel variable this.images te voorzien van image sources bv.: "foto1.jpg" "foto2.jpg" . Met functie Show() wil ik dit zichtbaar maken via een alert maar hier loopt het fout. this.images blijkt nog steeds 0 te zijn (initialisatie waarde).
Plaats ik de alert onder this.images = xmlhttp.responseText.split('|'); krijg ik wel het resultaat dat ik verwacht.
Momenteel zie ik niet wat ik fout doe, hopelijk kunnen jullie me verder helpen alvast bedankt.
Ik ben wat aan het uitproberen met Object Oriented Programming in javascript, stukje code:
JavaScript:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| function Slideshow(imElement) { //initialize the member variables for this instance this.element = imElement; this.images = 0; this.imgNow = 0; //intitialize the member function references Slideshow.prototype.AjaxRequestImages = AjaxRequestImages; Slideshow.prototype.SetFirst = SetFirst; //define Slideshow methods function AjaxRequestImages() { var xmlhttp; //Create XMLHttpRequest object if(window.XMLHttpRequest) {//code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {//code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } //Wait for response xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) {//when readyState = 4 and status = 200 response is ready this.images = xmlhttp.responseText.split('|'); } } //Send request to the server xmlhttp.open("GET","slideshow.php",true); xmlhttp.send(); } function Show() { alert(this.images); } } var ssObj; function InitSlideshow() { ssObj = new Slideshow("ssImage"); ssObj.AjaxRequestImages(); ssObj.Show(); } |
Even toelichten: De functie InitSlideshow wordt uitgevoerd bij een onload event. De functie maakt eerst een object van Slideshow en roept dan de functie AjaxRequestImages() op. Deze functie hoeft enkel variable this.images te voorzien van image sources bv.: "foto1.jpg" "foto2.jpg" . Met functie Show() wil ik dit zichtbaar maken via een alert maar hier loopt het fout. this.images blijkt nog steeds 0 te zijn (initialisatie waarde).
Plaats ik de alert onder this.images = xmlhttp.responseText.split('|'); krijg ik wel het resultaat dat ik verwacht.
Momenteel zie ik niet wat ik fout doe, hopelijk kunnen jullie me verder helpen alvast bedankt.