Avatar billede hanus91 Nybegynder
08. maj 2008 - 22:31 Der er 18 kommentarer

CSS Drob Down Menu List mangler en JS programmering

Hej Eksperten,
Jeg har en lavet en Drop Down Menu liste med CSS, HTML coden er oppbygget af Liste <ul> of <li> ogso 12 regler af JS for at få den at virke i IE, Men midt problem er at da man har onmouseover en <ul> som skal være en underliste eller "supmenu" og tager musen af listen så forsviner listen ligemed det samme, er det ikke muligt at lave en JS programmering der kan få et setTimeout også et value til den CSS Dropdown liste?

HTML Codingen ser sådan ud

<ul id="menu">
    <li><a href="#">Menu 1</a></li>
    <li><a href="#">Menu 2</a>
        <ul>
            <li><a href="#">Supmenu 2.1</a></li>
            <li><a href="#">Supmenu 2.2</a></li>
        </ul>
    </li>   
    <li><a href="#">Menu 3</a></li>
</ul>

CSS programmeringen er for at få supmenues til at vise sig når man har mouseover et af hoved menuene.

Hvis der er nogen flink person her der kan give mig en JS setTimeout programmering der kan sette et Timeout for listen til at forsvinde ville være Super =)

og til sidst, onskyld for midt danskt, jeg er kun er Færing.

M.V.H. Hanus91 ;)
Avatar billede w13 Novice
09. maj 2008 - 09:36 #1
Det er lidt svært uden at have det JS, du har lavet, men noget i stil med:

T=setTimeout("document.getElementById('id-på-den-givne-li').display='none'",1500);

"1000" er antal milisekunder, dvs. 1½ sekund i dette tilfælde.

Hvis man holder musen over boksen igen, inden der er gået 1½ sekund, skal du sætte:
T=null;
så annuleres timeout'en.
Avatar billede w13 Novice
19. maj 2008 - 12:55 #2
Givet op? :)
Avatar billede hanus91 Nybegynder
19. maj 2008 - 18:45 #3
Hey w13 :),

undskyld jeg ikke viste dig den JS coding, men der ser sådan ud:

navHover = function() {
    var lis = document.getElementById("main-menu").getElementsByTagName("LI");
    for (var i=0; i<lis.length; i++) {
        lis[i].onmouseover=function() {
            this.className+=" iehover";
        }
        lis[i].onmouseout=function() {
            this.className=this.className.replace(new RegExp(" iehover\\b"), "");
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", navHover);

Den er bare for at få functionen at virke med IE 5.5.  så måske skulle man lave en ny  JS fil eller function til setTimeout

m.v.h Hanus =)
Avatar billede hanus91 Nybegynder
19. maj 2008 - 18:48 #4
Oh btw, den bliver inportet sådan i HTML documented:

<!--[if gte IE 5.5]>
    <script language="JavaScript" src="js/ie.js" type="text/JavaScript"></script>
<![endif]-->
Avatar billede w13 Novice
19. maj 2008 - 19:33 #5
Jeg ville prøve at rette koden til:

navHover = function(){
    var T=null;
    var lis = document.getElementById("main-menu").getElementsByTagName("LI");
    for (var i=0; i<lis.length; i++) {
        lis[i].onmouseover=function() {
            T=window.clearTimeout(T);
            this.className+=" iehover";
        }
        lis[i].onmouseout=function() {
            T=window.setTimeout('this.className=this.className.replace(new RegExp(" iehover\\b"), "")',1000)
        }
    }
}
if (window.attachEvent) window.attachEvent("onload", navHover);
Avatar billede hanus91 Nybegynder
22. maj 2008 - 15:36 #6
Hi w13,

Jeg prøvede denne coding og fjernede den <!--[if gte IE 5.5]> ... <![endif]--> så funktionen i alle browser. Det ser ikke ud som om det fungerer som vented. Da man tager onMouseOver en liste kommer hann men forsvinder ikke igen når det er onMouseOut.

Men det er ikke så vigtig at hava den JS programmering. Det er ok med bare den normale CSS jeg har lige nu, og den er også mere "Search Engine Frendly" :)
Avatar billede w13 Novice
22. maj 2008 - 15:38 #7
Ja ok. Ellers må du lige smide et link til siden, så jeg kan se på det.
Avatar billede hanus91 Nybegynder
22. maj 2008 - 17:57 #8
Siden er ikke på nogen server endnu :P
Avatar billede w13 Novice
22. maj 2008 - 17:58 #9
Ok. Hvis det er muligt, kan du måske smide hele koden til det eller et eksempel, hvor det heller ikke virker? :)
Jeg tror i hvert fald ikke, jeg kan komme videre, uden at se noget mere.
Avatar billede hanus91 Nybegynder
22. maj 2008 - 18:03 #10
Kan jeg sende dig en .rar fil med e-mail?
Avatar billede w13 Novice
22. maj 2008 - 18:04 #11
Jep. w13 at ofir
Avatar billede hanus91 Nybegynder
22. maj 2008 - 18:10 #12
ofir? er der ingen e-mail addresse jeg kan sende filen til?
Avatar billede w13 Novice
22. maj 2008 - 18:12 #13
w13 at ofir dot dk :)
Avatar billede roenving Novice
23. maj 2008 - 14:35 #14
-- jeg tror bare w13 vil undgå at blive spammet, fordi et site som eksperten ofte besøges af mail-harvesters, så den er lige ændret en anelse, så en maskine ikke kan aflæse den uden voldsomme ressourcer !-)

'karlbajdentrettende87 at ofir dot dk' betyder: karlbajdentrettende87@ofir.dk ...
Avatar billede w13 Novice
23. maj 2008 - 14:38 #15
Tak :)
Avatar billede hanus91 Nybegynder
23. maj 2008 - 19:10 #16
Mange tak roeving :)

Jeg har sent den e-mail til w13 nu.
Avatar billede w13 Novice
23. maj 2008 - 21:19 #17
Jeg får det desværre ikke til at funge. =(
Avatar billede w13 Novice
17. oktober 2008 - 15:00 #18
Lukketid?
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