/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Problem med menu der åbner undermenu
Fra : Jimmy "Lonewolf"


Dato : 13-04-05 20:18

Jeg har et problem med at åbne en undermenu, når der klikkes på
et menu punkt.

Menuen (blå) er altid synlig.
Når siden loades, skal undermenuen (grå) være tom.
Når man klikker et menu-punkt, skal den tilhørende undermenu åbne
nedenunder.

LINK: http://www.rottehullet.dk/test

Kan nogen hjælpe????

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (14-04-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-04-05 09:57

Jimmy Lonewolf skrev:

> Menuen (blå) er altid synlig.
> Når siden loades, skal undermenuen (grå) være tom.
> Når man klikker et menu-punkt, skal den tilhørende undermenu åbne
> nedenunder.

> LINK: http://www.rottehullet.dk/test

Du fortæller ikke hvad problemet er - men det ser ud til at det der er
galt, er at alle menuer vises fra start.

Du skal have rettet din init-metode. Lige nu har du følgende:

function init() {
   oldId = null;
}

Men init skal også sætte display: none; på alle dine menubokse (selv om
man også kan gøre det i css-koden, er det en dårlig ide - for hvis
javascript er slået fra vil menuerne så ikke blive vist).

Du kan lave en linje for hvert element der skal skjules a la:

document.getElementById('navnpåelement').style.display = "none";

Hvis det skal se kønnere ud, kan man lave en for each-løkke, men jeg kan
ikke huske javascriptudgaven i hovedet.

Et par ekstra bemærkninger:
- Overvej at skrotte dine iframes - det gør navigationen vanskeligere
end nødvendigt. Du kan inkludere menu og andre faste elementer med SSI
eller lignende (se evt. <http://html.dk/tutorials/ssi/>).

- Du har angivet din hovedside til at være HTML 4.01 Frameset - det er
den ikke (frameset-dokumenter indeholder kun rammer, dokumenter der
anvender iframes skal laves som Transitional).

- Dine indholdssider mangler en doctype-erklæring. Doctype-erklæringen
gør det muligt at validere koden mod en validator - og dermed lettere at
sikre at koden er i orden i andre browsere og systemer end dit eget. Se
evt. links i min signatur.

--
Jens Gyldenkærne Clausen
Standardlinks om validering - hvordan og hvorfor:
<http://www.html-faq.dk/1005.asp>
<http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you>

Jimmy "Lonewolf" (14-04-2005)
Kommentar
Fra : Jimmy "Lonewolf"


Dato : 14-04-05 10:36

Jens GyldenkærneClausen wrote in dk.edb.internet.webdesign.html:
> Du fortæller ikke hvad problemet er - men det ser ud til at det der er
> galt, er at alle menuer vises fra start.

Ja, det er noget af det.
Det jeg vil lave er en menu, som starter med en "tom" undermenu, og som
så åbner en undermenu når der klikkes på et menu punkt.
Grunden til der bruges Jscript, er at det er noget jeg har fra en anden
siden, hvor menuen sidder i venstre side af sitet.

> Du skal have rettet din init-metode. Lige nu har du følgende:
>
> function init() {
>    oldId = null;
> }
>
> Men init skal også sætte display: none; på alle dine menubokse (selv om
> man også kan gøre det i css-koden, er det en dårlig ide - for hvis
> javascript er slået fra vil menuerne så ikke blive vist).
>
> Du kan lave en linje for hvert element der skal skjules a la:
>
> document.getElementById('navnpåelement').style.display = "none";

Jeg har følgende i mit css:

TD.submenu { display: none; }

og min Jscript fil ser sådan ud:

function init() {
   oldId = null;
}

function OpenMenu(Id) {
   if (oldId != null) {
      document.getElementById(oldId+'Submenu').style.display = "none";
   }
   document.getElementById(Id+'Submenu').style.display = "block";
   oldId = Id;
}

Men som sagt er det fra en anden side (rottehullet.dk).

Hvis der er en anden måde, ville det ikke gøre mig noget....Bare det
kommer til at virke

>
> - Du har angivet din hovedside til at være HTML 4.01 Frameset - det er
> den ikke (frameset-dokumenter indeholder kun rammer, dokumenter der
> anvender iframes skal laves som Transitional).
>
> - Dine indholdssider mangler en doctype-erklæring. Doctype-erklæringen
> gør det muligt at validere koden mod en validator - og dermed lettere
at
> sikre at koden er i orden i andre browsere og systemer end dit eget. Se
> evt. links i min signatur.
>

Alt det med validering, er jeg slet ikke inde i, og det linie der står i
mit dokument, er også fra den anden side.
Jeg har haft kikket på det, men forstår det ikke helt.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (14-04-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-04-05 10:53

Jimmy Lonewolf skrev i dk.edb.internet.webdesign.html:

> Jeg har følgende i mit css:
>
> TD.submenu { display: none; }

Ovenstående skjuler indholdet i tabelceller med klassen submenu. Men du
har ingen tabelceller med den klasse - du har derimod en masse links
(a-elementer) med klassen submenu.

Skriver du

   .submenu{ display: none; }

- gælder reglen for alle elementer med den klasse, og dine links vil
dermed blive skjult. Men det løser ikke dit problem, for den kode du
bruger til at vise elementerne igen, sætter kun visningen for det
div-element der indeholder dine links - og det er ikke nok.

Du kan i stedet sætte klassen submenu på div-elementerne (og ikke på
a-elementerne) - så vil vis/skjul-koden virke såfremt der er
javascript-understøttelse til rådighed i browseren.

Men som jeg skrev i sidste indlæg, synes jeg du bør være venlig mod de
folk (og evt. søgemaskiner) der ikke kan bruge javascript. Det kan du
gøre ved at fjerne visningen med javascript i stedet for direkte i
css-koden. Fordelen ved det er at elementerne kun bliver skjult hvis det
er muligt at vise dem igen.


> og min Jscript fil ser sådan ud:

Helt generelt så er Jscript en Microsoft-variant af Javascript. På mange
områder er de ens, men man gør alligevel klogt i at holde sig til "ren"
javascript når man anvender klientbaserede scripts på en side. Ellers
risikerer man let at scriptet kun virker i IE.

Jeg xfutter til clientsidegruppen (dk.edb.internet.webdesign.clientside)
- det betyder at dette indlæg kan ses både i html-gruppen og i
clientsidegruppen, mens svar kun bør komme i clientsidegruppen. HTML.dk
understøtter desværre ikke fut direkte, men jeg vil bede dig om at finde
dette indlæg i clientsidegruppen og svare på det dér - på den måde kan
debatten fortsætte i den rigtige gruppe.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jimmy "Lonewolf" (14-04-2005)
Kommentar
Fra : Jimmy "Lonewolf"


Dato : 14-04-05 11:15

Jens GyldenkærneClausen wrote in dk.edb.internet.webdesign.clientside:
> Jimmy Lonewolf skrev i dk.edb.internet.webdesign.html:
>
> > Jeg har følgende i mit css:
> >
> > TD.submenu { display: none; }
>
> Ovenstående skjuler indholdet i tabelceller med klassen submenu. Men du
> har ingen tabelceller med den klasse - du har derimod en masse links
> (a-elementer) med klassen submenu.

Ups....Det var fordi jeg havde prøvet med td, men det virkede ikke. Så jeg
har lige glemt, at rette css'en.

> ....Du kan i stedet sætte klassen submenu på div-elementerne (og ikke på
> a-elementerne) - så vil vis/skjul-koden virke såfremt der er
> javascript-understøttelse til rådighed i browseren.

Har faktisk også prøvet med div-element, da det oprindeligt var det der
blev brugt på den anden side (hvor jeg har det fra).

> Men som jeg skrev i sidste indlæg, synes jeg du bør være venlig mod de
> folk (og evt. søgemaskiner) der ikke kan bruge javascript. Det kan du
> gøre ved at fjerne visningen med javascript i stedet for direkte i
> css-koden. Fordelen ved det er at elementerne kun bliver skjult hvis det
> er muligt at vise dem igen.

Jeg er kan ikke rigtigt noget javascript etc, så det ville passe mig fint
hvis jeg kunne "nøjes" med at styre det med css.
Kan du give et eksempel......Jeg er næsten nybegynder, så jeg er ikke ret
meget inde i andet end noget html-kode.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (14-04-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 14-04-05 22:17

Jimmy "Lonewolf" skrev:

> Jeg er kan ikke rigtigt noget javascript etc, så det ville
> passe mig fint hvis jeg kunne "nøjes" med at styre det med
> css.

Den går ikke - da du så får problemer hvis javaunderstøttelsen
mangler. Men der skal nu også laves meget få ændringer i scriptet
for at få menuen op at køre. Det er mere et spørgsmål om at få
html-koden på plads.

> Kan du give et eksempel.

Vær så artig: <http://gyros.dk/usenet/temp/menu.html>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste