10. november 2005 - 16:24
Der er
13 kommentarer og 2 løsninger
Vis indholdet af div ved klik - Med cookie
Hej, Jeg har givet op. Jeg kan simpelthen ikke få nedenstående til at virke. Ka' du? Ved åben/luk skal der sættes en cookie, så valget huskes ved load af siden. Det skal være så simpelt som muligt og helst kun være i funktionen ShowHide du skal ændre. :) ### HTML ### <p style="font-weight: bold;"><img src="_arrowdown.png" onclick="ShowHide('id1', this);" style="cursor: pointer;" alt=""> Tilføj nyt spørgsmål</p> <div id="id1" style="display: none;"> Indhold </div> ### JAVASCRIPT ### function GetCookie(name) { var start = document.cookie.indexOf(name + "="); var len = start + name.length + 1; if((!start) && (name != document.cookie.substring(0, name.length))) { return null; } if(start == -1) { return null; } var end = document.cookie.indexOf(";", len); if(end == -1) { end = document.cookie.length; } return unescape(document.cookie.substring(len, end)); } function SetCookie(name, value, expires, path, domain, secure) { var today = new Date(); today.setTime(today.getTime()); if(expires) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date(today.getTime() + (expires)); document.cookie = name + "=" +escape(value) + ((expires) ? ";expires=" + expires_date.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : ""); } function ShowHide(id, img) { div = document.getElementById(id); if(div.style.display == "block") { div.style.display = "none"; img.src = '_arrowdown.png'; } else { div.style.display = "block"; img.src = '_arrowup.png'; } SetCookie('showthis', '0', '', '/', '', ''); }
Annonceindlæg fra Deloitte
10. november 2005 - 16:25
#1
<ole> Hvad sker der - og hvad sker der ikke - når du prøver? :) /mvh </bole>
10. november 2005 - 16:29
#2
Tilføj
10. november 2005 - 16:33
#3
Ups, jeg prøver igen: Tilføj efter ShowHide-funktionen: window.onload = function(){ var nr = GetCookie("showthis"); var div = document.getElementById("divID" + nr); var img = document.getElementById("imgID" + nr); ShowHide(div,img); } -- hvor forudsætningen er, at div'erne, der er skjult har id lig med divID0, divID1 osv. og billederne har id imgID0, imgID1 !-)
10. november 2005 - 17:13
#4
olebole>>Der sker desværre ikke så meget. Den åbnes og lukkes fint nok, men når man efter at have åbnet og loader siden igen, husker den intet.
10. november 2005 - 17:15
#5
-- du henter jo aldrig informationen !-)
10. november 2005 - 17:16
#6
roenving>>Jeg har indsat din tilføjelse, men jeg har en skummel ide om at jeg ikke får at cookie rigtig. Nu har jeg prøvet følgende uden resultat: ### JAVASCRIPTS ### function ShowHide(id, img) { div = document.getElementById(id); if(div.style.display == "block") { div.style.display = "none"; img.src = '_arrowdown.png'; SetCookie('showthis', div, '', '/', '', ''); } else { div.style.display = "block"; img.src = '_arrowup.png'; SetCookie('showthis', div, '', '/', '', ''); } } window.onload = function() { var no = GetCookie("showthis"); var div = document.getElementById("divID" + no); var img = document.getElementById("imgID" + no); ShowHide(div, img); }
10. november 2005 - 17:21
#7
Hrm, jeg var da også lidt for hurtig, det burde være sådan: window.onload = function() { var no = GetCookie("showthis"); var img = document.getElementById("imgID" + no); ShowHide("divID" + no, img); }
10. november 2005 - 19:36
#8
Ok, jeg ka' stadig ikke få det til at virke. ### HTML ### <p style="font-weight: bold;"><img src="_arrowdown.png" id="imgID1" onclick="ShowHide('divID1', this);" style="cursor: pointer;" alt=""> Tilføj nyt spørgsmål</p> <div id="divID1" style="display: none;"> indhold </div> ### JAVASCRIPTS ### function ShowHide(id, imgID) { div = document.getElementById(id); if(div.style.display == "block") { div.style.display = "none"; img.src = '_arrowdown.png'; SetCookie('showthis', document.getElementById("divID" + no), '', '/', '', ''); } else { div.style.display = "block"; img.src = '_arrowup.png'; SetCookie('showthis', document.getElementById("divID" + no);, '', '/', '', ''); } } window.onload = function() { var no = GetCookie("showthis"); var img = document.getElementById("imgID" + no); ShowHide("divID" + no, img); }
11. november 2005 - 07:49
#9
Hvad står der i cookien ?-) Find den (i IE) ved at gå i Funktioner --> Internetindstillinger... --> Indstillinger... (Under Midlertidige internetfiler) --> Vis filer -- find cookien (f.eks. vha. Sidst ændret !-) og åbn den (ignorer advarslen, hvis du er sikker på at det er den rigtige !-)
12. november 2005 - 23:33
#10
Hey roenving, Ligger du et svar? Jeg har opgivet og må indse at jeg ikke er den store javascript haj som først antaget. :(
13. november 2005 - 01:44
#11
Kan du ikke vise/fortælle, hvad cookien indeholder ?-) -- jeg har på et tidligere tidspunkt bøvlet meget med cookies, hvor det viste sig, at problemet var, at document.cookie returnerede noget andet end jeg regnede med !-)
21. januar 2006 - 19:40
#12
Hej roenving, Jeg har desværre ikke scriptet på siden mere. Ligger du et svar? :)
21. januar 2006 - 19:45
#13
Ok, men behold selv de fleste af dine point '-)
21. januar 2006 - 19:49
#14
Ok. Tak.
21. januar 2006 - 19:50
#15
-- og så takker jeg da for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling