Hoi,
ik wil op een rudimentaire manier een info veld aanpassen ivm een kalender-appje. De PHP zal 't volgende moeten uitspuwen:
Ik probeerde reeds vanalles te clearen alsook om de inhoud in een blocklevel-element (DIV) te gooien. Voorlopig zonder resultaat. Ik meen vroeger een soortgelijk scriptje geschreven te hebben waar ik dit soort problemen nooit had... Aangezien ik out-of-solutions ben, toch maar deze late post. BTW: in FF loopt het script niet snel, maar wordt alles goed gerenderd.
IE-versie: 6 met laatste servicepack.
ter info de laaste CSS:
ik wil op een rudimentaire manier een info veld aanpassen ivm een kalender-appje. De PHP zal 't volgende moeten uitspuwen:
HTML:
Met een klein javascriptje toggle ik de inhoud van de listitems:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <ul class="calendar"> <li id="event6" onClick="toggleCalendarDetail(6);"><a class="edit" href="#"><img src="./icon.edit.gif" alt="edit"></a> <span class="title">Praatcafée</span> 2 mei </li> <li id="event20" onClick="toggleCalendarDetail(20);"> <span class="title">C-TeamPlus</span><a class="edit" href="#"><img src="./icon.edit.gif" alt="edit"></a> 5 mei </li> ...etc </ul> |
JavaScript:
Globaal worden deze arrays gevuld en ook dat zal geen probleem zijn. In een statisch testcase kreeg ik echter een probleem met IE: bij het "openen/sluiten" van meerdere info-items werd de UL met de waar/wanneer/contact ineens boven andere LI's gerenderd, of net onder de calendar-UL.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
| function toggleCalendarDetail(id) { //toggle alle info of niet if (Temp[id].length < 1) { //alert(top.document.getElementById("event"+id).innerHTML); Temp[id] = top.document.getElementById("event"+id).innerHTML; txt = "<div><h2 style='clear:both;'>"+Title[id]+"</h2> <p>"+Info[id]+"</p>\n<ul>"; if (Uur[id].length > 1) Uurtxt = "</b> om <b>"+Uur[id]; else Uurtxt = "" if (Wanneer[id].length > 1) txt += "\n<li>Wanneer: <b>"+Wanneer[id]+Uurtxt+"</b></li>"; if (Waar[id].length > 1) txt += "\n<li>Waar: <b>"+Waar[id]+"</b></li>"; if (Email[id].length > 1) Emailtxt = " per <a href='mailto:"+Email[id]+"' title='"+Contact[id]+"'>"+Email[id]+"</a>"; else Emailtxt = ""; if (Contact[id].length > 1) txt += "\n<li>Contact: <b>"+Contact[id]+"</b>"+Emailtxt+"</li>"; txt += "</ul></div>"; top.document.getElementById("event"+id).style.backgroundColor = "white"; top.document.getElementById("event"+id).innerHTML = txt; //alert(top.document.getElementById("event"+id).innerHTML); } else { top.document.getElementById("event"+id).innerHTML = Temp[id]; top.document.getElementById("event"+id).style.backgroundColor = ""; Temp[id] = ""; } } |
Ik probeerde reeds vanalles te clearen alsook om de inhoud in een blocklevel-element (DIV) te gooien. Voorlopig zonder resultaat. Ik meen vroeger een soortgelijk scriptje geschreven te hebben waar ik dit soort problemen nooit had... Aangezien ik out-of-solutions ben, toch maar deze late post. BTW: in FF loopt het script niet snel, maar wordt alles goed gerenderd.
IE-versie: 6 met laatste servicepack.
ter info de laaste CSS:
Cascading Stylesheet:
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
| #content ul.calendar { position: relative; list-style: none; margin: 0px; padding:0px; } #content ul.calendar li { position: relative; padding: 3px; clear: both; border: 1px solid white; border-width: 1px 0px; } #content ul.calendar li a.edit { position: relative; float: right; border: 0px; zoom:1; } #content ul.calendar li span.title { position: absolute; left: 90px; } #content ul.calendar li ul { position: relative; list-style: none; margin: 0px; padding:0px; } #content ul.calendar li ul li { position: relative; border: 0px solid white; padding: 0px; } |