Avatar billede tangveje Nybegynder
20. januar 2003 - 16:10 Der er 20 kommentarer og
1 løsning

Skjul lag ved klik udenfor laget

Hey, har siddet og forsøgt at skjule et lag når der trykkes udenfor det. Jeg forsøgte med onblur="skjullag()" men det giver et problem, hvis jeg klikker på et link i laget forsvinder laget (og linket) før den reagerer på klikket, hvilket er ganske upraktisk.

Nogen der kender en smart måde at gøre det på, så laget forsvinder hvis man klikker udenfor, og kun udenfor laget?
Avatar billede cdc Novice
20. januar 2003 - 16:45 #1
Kan du ikke lave et onMouseOut på dit lag/layer, så når musen forsvinder fra layeret lukker den.
Her et lille ks: http://hjem.get2net.dk/arntsen/eksperten/menu/menu10.htm
Avatar billede tangveje Nybegynder
20. januar 2003 - 17:00 #2
Det kunne jeg godt jo, men det er ikke helt det jeg er ude på. Se evt. på www.lequet.com/coolselect/ det er den jeg sidder og roder med for tiden, og det skulle gerne være så tro en kopi som muligt. Hvis du har en almindelig select skjules den jo igen hvis man klikker uden for den. Det er det jeg gerne vil efterligne hvis det er muligt.
Avatar billede Noone Nybegynder
20. januar 2003 - 19:29 #3
Hvad med at gøre som på http://www.chanoandersen.dk/?lang=dk&page=gbook ? Det virker på den ønskede måde.. Men det er nu en eller anden skummel IE bug der laver det ;)
Avatar billede tangveje Nybegynder
20. januar 2003 - 19:52 #4
OK, har ikke selv lige mulighed for at bruge IE, og er bestemt ikke glad for ting der kun virker i en browser :) Kan forstå at det ikke er den nemmeste opgave i denne verden, men det må da være muligt. Ærgeligt at der ikke findes en onClickOutside handler :o)
Avatar billede cdc Novice
20. januar 2003 - 20:13 #5
set en div id="L1" på dit layer og onclick="hide('L1')" i din body. Ved ikke om det fungerer i andre en IE. Du skal også lige have en js fil i head:
<script type="text/javascript">function show(object) {
if (document.getElementById && document.getElementById(object) != null) {
    document.getElementById(object).style.visibility='visible';
    document.getElementById(object).style.display='block';
}
else if (document.layers && document.layers[object] != null)
          document.layers[object].visibility = 'visible';
else if (document.all) {
          document.all[object].style.zIndex = 100;
          document.all[object].style.visibility = 'visible';
}
}

function hide(object) {
if (document.getElementById && document.getElementById(object) != null) {
    document.getElementById(object).style.visibility='hidden';
    document.getElementById(object).style.display='none';
}
else if (document.layers && document.layers[object] != null)
          document.layers[object].visibility = 'hidden';
else if (document.all)
          document.all[object].style.visibility = 'hidden';
}

</script>
Avatar billede tangveje Nybegynder
20. januar 2003 - 20:40 #6
Jeg forsøgte mig med en lille ide. Hvis jeg nu satte dette på mit lag :

onmouseover="mpos = 1 ;" onmouseout="mpos = 0 ;"

Så kunne jeg jo tjekke om musen var over laget eller uden for laget ved klik. Men af en eller anden grund ville det ikke rigtigt lykkedes for mig. Har en fornemmelse af at det skyldes at et lag som sådan ikke kan have fokus. Jeg forsøgte mig med dette

document.getElementById('mitlag').focus() ;

Men det gav en fejl om at focus ikke er en funktion. Kan godt være at IE er ligeglad på det punkt, ved jeg ikke, men det hjælper desværre ikke rigtigt mig noget :(

/cdc > Ser umidelbart ud til at være det samme jeg forsøgte til at starte med, hvor man ikke kunne klikke på links i laget. Tilbage til start altså :)
Avatar billede cdc Novice
20. januar 2003 - 20:55 #7
nåh ja det har jeg så ikke testet :o)
Avatar billede cdc Novice
20. januar 2003 - 20:58 #8
Hvis du fører musen over kanppen og væk ud til siden står laget tilbage. Klik så på siden og det lukker.

http://hjem.get2net.dk/arntsen/eksperten/menu/menu_12.htm
Avatar billede cdc Novice
20. januar 2003 - 20:58 #9
Og du kan stadigvæk bruge linksene
Avatar billede tangveje Nybegynder
20. januar 2003 - 21:01 #10
Jep, kan jeg se... Undrer mig nu over hvad forskellen er, men vender lige tilbage når jeg har experimenteret lidt med det :)
Avatar billede tangveje Nybegynder
20. januar 2003 - 21:15 #11
Kan ikke få det til at virke, og den eneste forskel jeg nu kan se er at mine links blot har en href="#" og en onclick="dosomething() ; return false ;", prøv lige om dit virker med en onclick="alert('test')" på linksne, har en ide om at det ikke gør

Jeg kan få den til at skjule ved klik, men linksne virker stadig ikke uanset hvad jeg så forsøger :(
Avatar billede cdc Novice
20. januar 2003 - 21:58 #12
Vi må håbe olebole kommer forbi :o)
Avatar billede Slettet bruger
21. januar 2003 - 16:34 #13
I mangel af bedre må jeg jo træde til:
www.phoenixv.dk/exp/klik_udenfor.html
Avatar billede tangveje Nybegynder
21. januar 2003 - 17:32 #14
phoenixv > Det vel også godt nok er det ikke :) Desværre kan jeg ikke klikke på linket i dit eksempel. Ved ikke hvorfor, og hvorfor det virker i /cdc's eksempel, kan simpelthen ikke gennemskue det :(
Avatar billede tangveje Nybegynder
21. januar 2003 - 17:37 #15
Men derimod kan jeg sagtens klikke på selve laget, uden det forsvinder, men klikker jeg uden for laget eller på linket forsvinder det.
Avatar billede Slettet bruger
21. januar 2003 - 17:40 #16
Når du klikker på linket, skulle den gerne skifte side til Eksperten. Når du klikker uden for laget, skulle det gerne lukke.
Avatar billede Slettet bruger
21. januar 2003 - 17:40 #17
Hvilken browser bruger du?
Avatar billede Slettet bruger
21. januar 2003 - 17:41 #18
Jeg har i øvrigt glemt at optimere resten af koden til også at virke i NS6+, så hvis du kører Netscape, er det forståeligt. Jeg ordner det i morgen.
Avatar billede tangveje Nybegynder
21. januar 2003 - 17:45 #19
Bruger Mozilla, men det er jo "det samme som" NS 6+ :) Venter bare så, og tak for hjælpen so far
Avatar billede Slettet bruger
22. januar 2003 - 21:49 #20
Prøv at se på linket igen.
Avatar billede tangveje Nybegynder
27. januar 2003 - 07:52 #21
Undskyld ventetiden, og det er vist tid til at få lukket her.

Tak for hjælpen allesammen, så lykkedes det endelig :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester