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 fra Infor
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