15. juni 2008 - 21:22
Der er
15 kommentarer og 1 løsning
clikmenu virker ikke
Hej eksperter jeg kunne godt tænke mig at få min menu til at åbne og lukke i samme script når man kilkker på linket jeg har kæmpet mig blind på det jeg har lavet og kan ikke få det til at virke function clikmenu(elmnt){ if(document.getElementById(elmnt).style.visibility='hidden') { document.getElementById(elmnt).style.visibility='visible'; }else{ document.getElementById(elmnt).style.visibility='hidden'; } } Hilsen jobb
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan ikke bruge getElementById() på den måde. getElementById() tager en streng som parameter, ikke et objekt. Brug elmnt.style.visibility i stedet og onclick="clickmenu(this);" /Hallandsen
<ole> hr__hallandsen >> og da 'elmnt' meget sandsynligt er en streng, kan man i dén grad bruge getElementById() på den måde. Uden at vide, hvordan spørgeren kalder funktionen, er der vist ingen, der kan siger ret meget begavet om, hvad der skal gøres ;o) jobb >> Prøv at vise noget mere kode =) /mvh </bole>
olebole >> ja, det er da muligt. Jeg skrev som jeg gjorde, da jeg selv ville bruge "this". Men kunne det så ikke skyldes, at der i if-sætningen er brugt tildelingsoperatoren "=" i stedet for sammenligningsoperatoren "==", så udtrykket altid vil returnere true? /Hallandsen
Som hr_hallandsen påpeger, skyldes fejlen vel, at du ikke bruger "==" i if-sætningen, men kun "=". I øvrigt kan det gøres noget kortere: function clikmenu(elmnt){ elmnt=document.getElementById(elmnt); elmt.style.visibility=elmt.style.visibility=="hidden"?"visible":"hidden"; }
Men som det også er nævnt, kunne du måske med fordel overføre "this" til funktionen og på den vis nøjes med funktionen: function clikmenu(o){ o.style.visibility=o.style.visibility=="hidden"?"visible":"hidden"; }
function clikmenu(elmnt){ elmnt=document.getElementById(elmnt); elmt.style.visibility=elmt.style.visibility=="hidden"?"visible":"hidden"; } skulle i øvrigt være: function clikmenu(o){ o=document.getElementById(o); o.style.visibility=o.style.visibility=="hidden"?"visible":"hidden"; }
- eller: function clikmenu(o){ if (typeof o=="string") o=document.getElementById(o); o.style.visibility=o.style.visibility=="hidden"?"visible":"hidden"; }
Jeg får en objekt fejl når jeg smider scriptet ind jeg kalder med denne her <td rowspan="2" onmousedown="clikmenu('profil')"> <a href="#"><img src="images/one_10.gif" width="112" height="40" alt="" border="0"></a><br> <table class="menu" id="profil" cellspacing="0" cellpadding="0"> <tr><td class="menu"><a href="#"><img src="images/under_1.gif" width="112" height="178" alt="" border="0"></a></td></tr> </table> </td> og min class menu er hidden til at starte med
Hvilken objekt-fejl får du og hvilken linje?
16. juni 2008 - 18:09
#10
linie 49 og et objekt var ventet...
16. juni 2008 - 18:13
#11
denne her linie <td rowspan="2" onmousedown="clikmenu('profil')">
16. juni 2008 - 18:35
#12
Hvilken funktion har du brugt? Jeg får ingen fejl ved oleboles sidste funktion. <script type="text/javascript"> function clikmenu(o){ if (typeof o=="string") o=document.getElementById(o); o.style.visibility=o.style.visibility=="hidden"?"visible":"hidden"; } </script> <table><tr> <td rowspan="2" onmousedown="clikmenu('profil')" border=1> <a href="#"><img src="images/one_10.gif" width="112" height="40" alt="" border="0"></a><br> <table class="menu" id="profil" cellspacing="0" cellpadding="0"> <tr><td class="menu"><a href="#"><img src="images/under_1.gif" width="112" height="178" alt="" border="0"></a></td></tr> </table> </td> </tr></table> /Hallandsen
16. juni 2008 - 18:53
#13
Åhh det var mig der havde laver en taste fejl sorry Men det driller mig stadig hvad kan det være når jeg skal trykke 2 gange første gang jeg kommer ind på siden og ellers køre den som den skal
16. juni 2008 - 22:36
#14
Så ret: o.style.visibility=o.style.visibility=="hidden"?"visible":"hidden"; til: o.style.visibility=o.style.visibility!="visible"?"visible":"hidden";
16. juni 2008 - 23:30
#15
Jeg vil gerne dele pointene mellem jer i må gerne lægge et svar En anden ting er hvordan får jeg hvis jeg har flere lukket de andre (hidden).
17. juni 2008 - 09:10
#16
Her er et svar! :)
Vi tilbyder markedets bedste kurser inden for webudvikling