Avatar billede MBD1977 Nybegynder
25. januar 2011 - 13:26 Der er 3 kommentarer og
1 løsning

fejlkode på hjemmeside

Hejsa.

Jeg leger lidt med at lave en hjemmeside, og jeg har sat en drop down menu ind, som kører via et javascript. Men jeg får en fejl i denne linie:
var dropmenu=this.addDiv(null, dropmenuvar.divclass, dropmenuvar.inlinestyle)

Den siger 'divclass' er null eller ikke et objekt

? Jeg ved ikke lige om det er oplysninger nok for at en eller anden kan hjælpe mig?

Mvh Morten
Avatar billede mcb2001 Nybegynder
25. januar 2011 - 13:42 #1
der mangler godt nok noget kontekst her...

Hvordan ser din html ud og endnu vigtigere, hvordan ser dit javascript ud, for variablen dropmenuvar bliver vel sat et eller andet sted, og det er objectet dropmenuvar's interne variabel divclass du forsøger at tilgå, men denne er ikke sat.
Avatar billede MBD1977 Nybegynder
25. januar 2011 - 14:15 #2
Jeg har smidt alle filerne her: http://dalmose.eu/web.rar

Hvis du gider at kigge dem igennem for mig, og forklare (for en n00b) hvordan jeg fjerner fejlen :-)

Mvh Morten
Avatar billede mcb2001 Nybegynder
25. januar 2011 - 14:37 #3
nu er der en del kode, men fejlen ligger ganske rigtigt her:

var relattr=anchorobj.getAttribute("rel")
dropmenuid=relattr.replace(/\[(\w+)\]/, '')
var dropmenuvar=window[dropmenuid]
var dropmenu=this.addDiv(null, dropmenuvar.divclass, dropmenuvar.inlinestyle) //create and add main sub menu DIV

linie et finder rel for attributerne. Det bruger du så til at lave tekststrengen dropmenuid.
Denne tekststreng bruger du så som pointer til at finde et objekt i window (javascript standard objektet window).
Dette objekt forsøger du så at trække på variablen divclass, og det går galt da jeg ikke vil mene den eksisterer.

umiddelbart forventer addDiv funktionen at få tre værdier:
1. Første værdi er det ID der skal sættes på den nyoprettede DIV, det sætter du til null??
2. Anden værdi er den css-class der skal tildeles DIV'en. Den sætter du ud fra en eller anden parameter du ikke har tjek på.
3. Den sidste parameter er unik styling (style="...") i DIV objektet, denne sætter du igen til noget der ikke er styr på.

Hvis jeg så hard-coder nogle egenskaber for dem, så vil du opdage at længere nede i scriptet, så er der bare flere fejl. Så jeg tror du er nød til at gentænke dit script en del, eller finde et mere simpelt et, for det virker godt nok som overkill for en simpelt dropdown menu :-)


prøv eventuelt at kigge på jquery, så kan du spare tid, kode og hovedpine :-)

addDiv:function(divid, divclass, inlinestyle){
Avatar billede MBD1977 Nybegynder
26. februar 2016 - 15:08 #4
Øh, jeg smider lige et svar så vi kan få lukket den her - brok dig hvis det ikke er ok...
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
Kurser inden for grundlæggende programmering

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