12. oktober 2004 - 11:38Der er
18 kommentarer og 1 løsning
Menu går bagom select form og flash elementer
Jeg har en js dropdown menu. den virker fint, men der er bare det problem at hvis der er en select form på siden vises menuen bag ved select formen. Den går også bagom indlejrede flash elementer på siden.
ok hvor sætter jeg det ind henne. jeg er ikke nogen haj til js
Jeg bruger en freeware menu der hedder coolmenu og den er kæmpestor. Der vilsikkert også være et problem i at der er select forme på mange forskellige sider.
Der kan så laves en funktion som finder alle <select> elementerne og viser/skjuler dem. Sådan en bliver du nok nød til at have da det skal virke på alle sider.
Du har en lang række kald hvor du opbygger menuen. Her kan du se hvordan jeg har gjort det. Min er lidt speciel fordi jeg har andre funktioner og frames jeg kalder.
Det er kun nødvendigt at smide hideThis() og showThis() kaldet på de menu punkter der har under menuer. Derfor bliver de kun kaldt på 'top1' og 'top2' menupunkterne (Dette er kun et lille udsnit af min menu, hvorfor du ikke kan se underpunkterne til top2)
<% sql2 = "select navn, projektid from projekt where virkid = " & virkid & " and afsluttet = 'n'" set rs=server.CreateObject("adodb.recordset") rs.Open sql2, conn, 3 antal_poster = rs.RecordCount ii = 0 do while not rs.eof Response.Write("oMenu.makeSubSub(2,1,"& ii &",' " & rs("navn") &" ','Default.asp?page=projekt_info.asp&projektid="& rs("projektid")&"'," & antal_poster & ")") &vbcrlf rs.movenext ii = ii +1 loop
-- hvadfor bruger du .all.tags(), som kun virker i M$IE, når man bare kan bruge .getElementsByTagName(), som virker i en hvilkensomhelst bruser, da den er en del af DOM-standarden ?-)
Lige netop denne funktione har jeg ikke lavet. Jeg bruger den bare, men du har fuldstændig ret.
Vi har rigtig meget gammel kode her i firmaet, som ikke er crossbrowser kompatibel. Der står faktisk i vores kravsspecifikationer til kunderne at løsningen er rettet mod IE 5.5 og frem (vi laver primært intranet, så det er ikke så slemt)
Det bliver det meste af vores nye kode også (det smutter nogle steder, når man klip/klistre og ikke går koden igennem). Men der er heller ikke tid/resurser til at ændre den gammel kode så det virker "rigtigt". Kunderne har jo også fået at vide at det kun virker i IE, så der er heller ingen grund til at ændre det.
fennec >> Selvom 'document.all' fungerer i IE, er det en betydelig dårligere performende metode, end at bruge f.eks. 'document.getElementById'. Der er således andre og ligeså vægtige argumenter for ikke at bruge IE-specifik kode - men i stedet bruge de standardiserede DOM-bindings ;o)
olebole >> Nu kan man jo ikke bruge getElementById metoden i dette tilfælde, da man ikke kender ID'erne på select elementerne. Funktionen skulle have været lavet med getElementsByTagName, som roenving også skrev, men som sagt er det ikke mig, der har lavet den.
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.