'Lo
Ik heb weer eens iets gebroddeld in Ajax en jQuery. Ik vind het raar, maar FF en Safari doen het prima, maar Internet Explorer werkt niet mee.
Het idee is dit:
Op de homepage moet een jQuery Cycle script komen dat een aantal fototjes laat 'rollen', en na verloop van tijd zichzelf update. Deze fototjes worden door PHP uit de autotelegraaf gesloopt. Vraag me niet waarom, maar dit wil men graag. U vraagt, wij draaien.
Het uit de auto telegraaf slopen van de juiste fotos gaat goed. PHP maakt hier een pakketje JSON van, en jQuery haalt die op en inject het in de cycle div. Vervolgens wordt er een mooie slideshow van gemaakt. In Safari en Firefox werkt dit prima. Zie hier een voorbeeld.
De quick n dirty:
Wat er in IE (7, 8 niet getest) mis gaat is dit: hij laadt geen nieuwe (random) gegevens in, en blijft bij de oude data. Hij ververst dus niet. Hij kiest bij het laden van de pagina een occasion uit, en blijft erbij.
Ik heb al verschillende dingetjes geprobeerd, maar debuggen voor IE is niet mijn specialiteit (blijkt). Iemand enig idee want ik
zeg maar.
Ik heb weer eens iets gebroddeld in Ajax en jQuery. Ik vind het raar, maar FF en Safari doen het prima, maar Internet Explorer werkt niet mee.
Het idee is dit:
Op de homepage moet een jQuery Cycle script komen dat een aantal fototjes laat 'rollen', en na verloop van tijd zichzelf update. Deze fototjes worden door PHP uit de autotelegraaf gesloopt. Vraag me niet waarom, maar dit wil men graag. U vraagt, wij draaien.
Het uit de auto telegraaf slopen van de juiste fotos gaat goed. PHP maakt hier een pakketje JSON van, en jQuery haalt die op en inject het in de cycle div. Vervolgens wordt er een mooie slideshow van gemaakt. In Safari en Firefox werkt dit prima. Zie hier een voorbeeld.
De quick n dirty:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
| //tekst om te displayen tijdens het laden var toLoad = '<p class="ajaxLoad"><img src="img/load.gif" alt="laden..." /> Een moment geduld alstublieft, de gegevens worden opgehaald.</p>'; //de breedte van de pictures in de occasion_box var occasionPicWidth = 323; //de hoogte van de pictures in de occasion_box var occasionPicHeight = 242; function loader (selector) { $(selector).html(toLoad); } function animateBar (selector, milisecs, maxwidth, callback) { $(selector).animate({width: maxwidth}, milisecs, "linear", callback ); } function checkEmail(inputobj) { var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/; if (!filter.test(inputobj.value)) { alert('Uw E-mailadres is ongeldig.\nEen geldig e-mailadres heeft als formaat:\naccount@domein.ext'); return false; } else return true; } $(document).ready(function() { //lightboxen $(function() { $('.contentplaatje').lightBox({fixedNavigation:true}); }); loader("#occasion_layer"); //laten zien dat we aan het laden zijn $.getJSON ('ajax/loadOccasion.php',function(data) { var bla = '<h2>Onze occasions</h2><div class="occasion_box"><div class="occasion_pics">'; for(i in data.images) { bla += '<img src="'+data.images[i]; bla +='" alt="occasion plaatje" width="'+occasionPicWidth+'" height="'+occasionPicHeight+'" />'; } bla+='</div><p><strong>'+data.naam+'</strong><br/>Prijs: '+data.prijs+' Bouwjaar: '+data.bouwjaar+'</p>'; bla+='<a href="'+data.link+'">klik hier voor meer info</a><br/>Tijd tot auto-update:<br/><div class="occasion_status"></div></div>'; $("#occasion_layer").html(bla); //occasionbox sluiten $('.occasion_pics').cycle({ fx: 'fade', speed: 2500 }); var aantal = data.images.length+2; var timeUpdate = aantal*2500; animateBar(".occasion_status",timeUpdate,"100%", function(){ newOccasionTPL(); }); }); function newOccasionTPL () { loader("#occasion_layer"); //laten zien dat we aan het laden zijn $.getJSON ('ajax/loadOccasion.php',function(data) { var bla = '<h2>Onze occasions</h2><div class="occasion_box"><div class="occasion_pics">'; for(i in data.images) { bla += '<img src="'+data.images[i]; bla +='" alt="occasion plaatje" width="'+occasionPicWidth+'" height="'+occasionPicHeight+'" />'; } bla+='</div><p><strong>'+data.naam+'</strong><br/>Prijs: '+data.prijs+' Bouwjaar: '+data.bouwjaar+'</p>'; bla+='<a href="'+data.link+'">klik hier voor meer info</a><br/>Tijd tot auto-update:<br/><div class="occasion_status"></div></div>'; $("#occasion_layer").html(bla); //occasionbox sluiten $('.occasion_pics').cycle({ fx: 'fade', speed: 2500 }); var aantal = data.images.length+2; var timeUpdate = aantal*2500; animateBar(".occasion_status",timeUpdate,"100%", function(){ newOccasionTPL(); }); }); } }); |

Wat er in IE (7, 8 niet getest) mis gaat is dit: hij laadt geen nieuwe (random) gegevens in, en blijft bij de oude data. Hij ververst dus niet. Hij kiest bij het laden van de pagina een occasion uit, en blijft erbij.
Ik heb al verschillende dingetjes geprobeerd, maar debuggen voor IE is niet mijn specialiteit (blijkt). Iemand enig idee want ik

