13. februar 2006 - 13:10Der er
25 kommentarer og 1 løsning
træmenu - huske indstillinger
Hejsa.......
Jeg har en træmenu - endelig lykkes det :-) Jeg kunne dog enormt godt tænke mig, at træet kan huske indstillingen (åben/lukket). Dette løses vel igennem cookies? Jeg kan løse det delvist igennem PHP, men jeg vil gerne lave noget stationær html-kode, men er ikke en hardcore javascript-haj :-/
Er der nogle forslag (eller andre eksempler), hvor man får de enkelte punkter til at huske sine indstillinger)?
Og please husk, at jeg er nubi mht. javascript ;) Glæder mig til at høre fra jer!
Her et lille uddrag af koden: -------------------------------------------
<script type="text/javascript"> function showHide(id) { var div = document.getElementById(id) div.style.display = div.style.display == "block" ? "none" : "block" } </script>
Nu har jeg kigget lidt nærmere på det, og harforeløbig lavet følgende:
var cookie_name = 'mydiv_2'; var mydiv_2_val = get_cookie(cookie_name);
// Cookie er IKKE sat if(mydiv_2_val == false) { var mydiv_2 = 'mydiv_2'; createCookie('mydiv_2','open','100'); }
// Cookie er sat - hent værdien var mydiv_2_val = get_cookie(cookie_name);
Jeg ved ikke, om man kan gøre det jeg nu havde tænkt mig....... Der er to muligheder: 1. Cookie har værdien: open 2. Cookie har værdien closed (laver jeg selv på en og anden måde senere)
Hvis open - vis træet åbent - ellers luk træet (altså den relevante del) Håber du/I kan bære over med min tanke......jeg er som bekendt ny i j-script-faget :-/
Kan denne måde du, fordi jeg kunne altså ikke ved roenvings eksempel få det til at fungere umiddelbart :-(
Cookie: name:"openmenu" har ingen værdier selv om jeg åbner og lukker diverse menuer. Jeg formoder, at denskal fyldes med nogle værdier? (for at gemme ved refresh) - dermed foldede menuerne sig også ud efter refresh, underordnet om jeg havde lukket dem før.
En lille ting er, at når jeg tømmer alle cookies (hvilket ikke er unormalt), så får jeg fejl i at "var id = c.split("openMenu=")[1] ikke har nogle properties.....jeg ved ikke om dette er en fatal error......
Som sagt er jeg lidt en newbie til javascript, men kan du angive noget simpelt, med cookie, der virker, hvor man trykker på sammen link?
Nu har jeg ændret lidt i det, og jeg fatter bare ikke sammenhængen med hvordan den læser linien (jeg er vant til PHP), hvor man "bare" skal lave koden backend, og vise skidtet........
Har siddet og pillet lidt i det, og du skal jo så, ved lukning af en gren, sætte cookien til at pege på den parent-node, der så er foldet ud, og det er noget tricky !-)
Nu har jeg muligvis fikset en løsning. Det eneste irriterende er bare, at ved reload, så folder den hele menuen ud, hvorefter den lukker de rigtige steder - det er lidt en øjebæ, men måske det kan fikses. Jeg ved ikke om det er den "rigtige" måde, men vi får at se :-)
Jeg har så brugt din showhide-dimmer - det er smukt - kom gerne med kommentarer - og læg gerne et svar - så er der i hvert fald points :-)
Det eneste er, at den kommer med en warning om, at jeg skal bruge getelementbyid istedet for nedenstående: eval(\"document.all.\" + obj + \".style.display='block'\");
-- den, du viser er for det første kun gyldig i IE, for det andet benytter den en af de tungeste native javascript-funktioner, og som du kan se er den for det tredje fuldstændig overflødig !-)
-- og så er det altså kun overpunkterne, der bliver foldet sammen, virker den, hvis du har flere grene, der kan foldes ud i flere lag ?-)
Tak for den sidste der! Det virker. Jeg er ikke helt med på, hvad du mener. Menuen er tænkt således, at til et punkt er der kun underpunkter eller ligestillede punkter.....
Hvis du mener, at den OSSE skal folde underpunkter ind, hvis man klikker på et overpunkt, så er det ikke meningen - underpunkterne skal bare forblive lukkede, men det kunne man godt fikse.
Selve menuen laves genereres vha PHP. Men skulle man principielt bare ud i, at overpunktet skal lukkede punkter under sig - det kunne man jo osse godt.....
Selv tak - de er "hard" earned men sådan en newbie som mig. Jeg har bare så svært ved at komme fra backend til frontend. Jeg forstår grundlæggende ikke, at klienten kan afvikle noget som helst ;)
Jeg har jo altid redigeret alting "omme bagfra". Og javascript er bare en anden verden.......men mange tak for hjælpen og tålmodigheden!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.