01. februar 2001 - 21:15Der er
6 kommentarer og 1 løsning
Lidt kompliceret Javascript problm - få det til at funge
Hej - jeg er gladeligt begyndt at programer i Javascript - og er også kommet langt (synes jeg selv :) - men denne nø kan jeg ikke lige knække - hvorfor gider gølgende kode ikke at smytte det ud jeg gerne vil have den til?
//select stederne var hvilke_0 = new Array(); hvilke_0[0] =new kombine(\'Select from the Home\', \'\') hvilke_0[1] =new kombine(\'Home\', \'../index.htm\')
var hvilke_1 = new Array(); hvilke_0[0] =new kombine(\'Select from Site 1\', \'\') hvilke_0[1] =new kombine(\'Wa2\', \'../2.htm\') hvilke_0[2] =new kombine(\'Loc3\', \'../2.htm\') hvilke_0[3] =new kombine(\'4\', \'../2.htm\') hvilke_0[4] =new kombine(\'5\', \'../2.htm\') hvilke_0[5] =new kombine(\'5n\', \'../2.htm\')
var hvilke_2 = new Array(); hvilke_0[0] =new kombine(\'Select from Side mol\', \'\') hvilke_0[1] =new kombine(\'Wats new\', \'../3.htm\') hvilke_0[2] =new kombine(\'Location\', \'../3.htm\') hvilke_0[3] =new kombine(\'Location\', \'../3.htm\') hvilke_0[4] =new kombine(\'Location\', \'../3.htm\') hvilke_0[5] =new kombine(\'Location\', \'../3.htm\')
var hvilke_3 = new Array(); hvilke_0[0] =new kombine(\'Select from News\', \'\') hvilke_0[1] =new kombine(\'Introdution\', \'../4.htm\') hvilke_0[2] =new kombine(\'Solution\', \'../4.htm\')
function kombine(hvad, hvor){ this.hvad=hvad; this.hvor=hvor; }
function samle(y){ hju = eval(\'hvilke_\'+y)
with (eval(hju+\'[0]\')){ out = \'<OPTION selected>\'+hvad+\'</OPTION>\' } for (var x=1; x!=eval(hju+\'.length\'); x++){ with (eval(hju+\'[\'+x+\']\')){ out += \'<OPTION value=\"\'+hvor+\'\">\'+hvad+\'</OPTION>\' } } return out; }
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.
//select stederne var hvilke_0 = new Array(); hvilke_0[0] =new kombine(\'Select from the Home\', \'\') // kombine er ikke defineret hvilke_0[1] =new kombine(\'Home\', \'../index.htm\') // endnu og returnerer intet.
var hvilke_1 = new Array(); hvilke_0[0] =new kombine(\'Select from Site 1\', \'\') // du mener vist hvilke_1[0]= hvilke_0[1] =new kombine(\'Wa2\', \'../2.htm\') hvilke_0[2] =new kombine(\'Loc3\', \'../2.htm\') hvilke_0[3] =new kombine(\'4\', \'../2.htm\') hvilke_0[4] =new kombine(\'5\', \'../2.htm\') hvilke_0[5] =new kombine(\'5n\', \'../2.htm\')
var hvilke_2 = new Array(); hvilke_0[0] =new kombine(\'Select from Side mol\', \'\') // du mener vist hvilke_2[0]= hvilke_0[1] =new kombine(\'Wats new\', \'../3.htm\') hvilke_0[2] =new kombine(\'Location\', \'../3.htm\') hvilke_0[3] =new kombine(\'Location\', \'../3.htm\') hvilke_0[4] =new kombine(\'Location\', \'../3.htm\') hvilke_0[5] =new kombine(\'Location\', \'../3.htm\')
var hvilke_3 = new Array(); hvilke_0[0] =new kombine(\'Select from News\', \'\') // inline kald til kombine() før den hvilke_0[1] =new kombine(\'Introdution\', \'../4.htm\') // er defineret hvilke_0[2] =new kombine(\'Solution\', \'../4.htm\') // du mener vist hvilke_3[0]=
function kombine(hvad, hvor){ this.hvad=hvad; this.hvor=hvor; // der mangler en return this; sætning }
function samle(y){ hju = eval(\'hvilke_\'+y) // første eval burde være nok. anden forsøger eval af indholdet af // indholdet af hvilke_0[0] with (eval(hju+\'[0]\')){ out = \'<OPTION selected>\'+hvad+\'</OPTION>\' } // adskil sætninger med ; nogen gange skal de være der for (var x=1; x!=eval(hju+\'.length\'); x++){ with (eval(hju+\'[\'+x+\']\')){ out += \'<OPTION value=\"\'+hvor+\'\">\'+hvad+\'</OPTION>\' } }; return out; }
var layernr=new Array(); layernr[0]=new layer(foer+wath[0]+efter,0,h) // funktionen layer() defineres først layernr[1]=new layer(foer+wath[1]+efter,25,h) // efter disse inline kald til den layernr[2]=new layer(foer+wath[2]+efter,100,h) layernr[3]=new layer(foer+wath[3]+efter,230,h)
function layer(kode,venstre,top) { // layer er et standardord i NS this.kode=kode; this.venstre=venstre; this.top=top; // bør have en return this; for at returnere det skabte objekt };
var watch = new Array( samle(0), samle(1), samle(2), samle(3) );
men medmindre du bruger det der watch array andre steder jeg ikke kan se er det da nemmere bare at kvitte det og direkte skrive:
var layernr = new Array ( new Array ( foer +samle(0) +efter, 0, h ), new Array ( foer +samle(1) +efter, 25, h ), new Array ( foer +samle(2) +efter, 100, h ), new Array ( foer +samle(3) +efter, 230, h ) );
når du så skal skrive din kode bliver det noget i retning af: var dettelag = layernr[0]; // with findes og virker, men det er som regel // nemmere blot at lave en pointer document.write( dettelag[0] ); // kode
brug samme system i dit hvilke array, så kan du også slippe af med eval\'erne (eval er en pestilens, den gør koden uoverskuelig og er dyr i både memory og CPU-tid)
var hvilke = new Array ( new Array ( new Array ( \'Select from the Home\', \'\' ), new Array ( \'Home\', \'../index.htm\' ) ), new Array ( new Array ( \'Select from Site 1\', \'\' ), new Array ( \'Wa2\', \'../2.htm\' ), new Array ( \'Loc3\', \'../2.htm\' ), new Array ( \'4\', \'../2.htm\' ), new Array ( \'5\', \'../2.htm\' ), new Array ( \'5n\', \'../2.htm\' ) ), new Array ( new Array ( \'Select from Side mol\', \'\' ), new Array ( \'Wats new\', \'../3.htm\' ), new Array ( \'Location\', \'../3.htm\' ), new Array ( \'Location\', \'../3.htm\' ), new Array ( \'Location\', \'../3.htm\' ), new Array ( \'Location\', \'../3.htm\' ), new Array ( \'Location\', \'../3.htm\' ) ), new Array ( new Array ( \'Select from News\', \'\' ), new Array ( \'Introdution\', \'../4.htm\' ), new Array ( \'Solution\', \'../4.htm\' ) ) );
var hvad = 0; // for at gøre det lidt menneskeligt med alle de indexer :) var hvor =1; function samle(y) { var hju = hvilke[y]; var out = \'<OPTION selected>\'+hju[0][hvad]+\'</OPTION>\'; for (var x=1; x<hju.length; x++){ out += \'<OPTION value=\"\'+hju[x][hvor]+\'\">\'+hju[x][hvad]+\'</OPTION>\'; }; return out; }; //end samle ( heltal )
emilieej --> jeg ANER ikke hvad man plejer at benytte - men jeg har åbenbart set det på en side - og så har jeg bare brugt det siden uden at tænke på om det var javascript - eller hvad - jeg skrev i :)
--> beklage - jeg har lige haft vrøvl med en ADSL forbindelse - så jeg har ikke kunne komme ind på eksperten (dette er det første gang jeg er på siden mit nedbrud) - giv mig lige et dag eller to så jeg kan se på det - og så skal jeg nok acceptere/svare
--> jakoba - jeg er meget glad for alle dine kommentare (det lader da til at du har lidt styr på JS ;)
jeg troede at når man kaldte en function så var det lige meget hvor den var henne - den blev bare kaldt
du har naturligvis ret i at det er hvilke_(nummer)[0] - jeg mener ikke hvilke_0[0] alle steder
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.