Avatar billede koch Nybegynder
20. november 2003 - 22:16 Der er 5 kommentarer og
1 løsning

Skal function oprettes i array?

Jeg har en funktion:
      function imgShift(){ 
        imgEnd=imgStart+4 
        imgNum++
        if (imgNum==imgEnd)
          {imgNum=imgStart}
        eval("document.bil_"+CarNum+".src=img["+imgNum+"].src")
        }
´
imgNum, imgStart og CarNume tildeles forskellige værdier alt efter hvorhenne på siden funktionen kaldes.

Jeg har oprettet et array til mine billeder, billedArray();. Jeg vil gerne have oprette en function img(); for hvert objekt jeg har i mitArray();. Jeg vil oprette en table med nogle billeder og noget tekst udfra mitArray();, så jeg har brug for en img-funktion der som jeg kan kalde med imgShift[i]();.

Kan det gøres sådan her:
Jeg opretter en funktion:

      function shift[i](){ 
        imgNum=imgStart[i]
        imgEnd=imgStart[i]+4 
        imgNum++
        if (imgNum==imgEnd)
          {imgNum=imgStart[i]}
        eval("document.bil_"+CarNum[i]+".src=img["+imgNum+"].src")
        }

imgStart[i], CarNum[i] skal forestille at være taget fra mitArray(); naturligvis.

og derefter et array der opretter alle funktionerne udfra shift();

var imgShift=new Array();
for (i=0;i<biler.length; i++){imgShift[i][shift[i]();]

Herefter kan jeg(måske) kalde imgShift[i]
Avatar billede roenving Novice
20. november 2003 - 22:24 #1
Du skal bare:

      function imgShift(n){ 
        imgEnd=imgStart[n]+4; 
        imgNum=imgStart[n]
        if (imgNum==imgEnd)
          {imgNum=imgStart[n]}
        eval("document.bil_"+CarNum[n]+".src=img["+imgNum+"].src")
        }
Avatar billede koch Nybegynder
22. november 2003 - 13:48 #2
Bare og bare ;o) Jeg er ikke helt med! Jeg kan ikke umiddelbart se at imgShift() oprettes for hver 'i' der er i mitArray();?
Avatar billede roenving Novice
23. november 2003 - 12:29 #3
Du behøver heller ikke at oprette en ny funktion for hver instans, netop derfor har jeg medsendt en variabel, som holder styr på hvor vi er henne !-)
Avatar billede koch Nybegynder
05. december 2003 - 22:36 #4
Jeg forstår det ikke, så jeg prøver at forklare hvad jeg mener, og så kan du evt. svare på om det er

det du mener!
Jeg har et array 'biler'. Jeg har en funktion PrintCar som bl.a. opretter et billede som et link, hvor

linket udløser en funktion imgShift();.

Min funktion 'imgShift();' skal hente data fra biler[i].
Mit forslag:

    function imgShift()
        {
        imgStart[i]="parseInt(biler[i].split("*")[6])";
        imgNum=imgStart[i]
        imgEnd=imgStart[i]+4 
          imgNum++
          if (imgNum==imgEnd)
              {imgNum=imgStart[i]}
              eval("document.bil_"+parseInt(biler[i].split("*")[5])+".src=img["+imgNum+"].src")
          }
        }

Hvordan opretter jeg imgShift(); så jeg efterfølgende kan klikke på det 'billedelink' der er oprettet

udfra 'biler[4]'

    function imgShift()
        {
        imgStart[4]="parseInt(biler[4].split("*")[6])";
        imgNum=imgStart[4]
        imgEnd=imgStart[4]+4 
          imgNum++
          if (imgNum==imgEnd)
              {imgNum=imgStart[4]}
              eval("document.bil_"+parseInt(biler[4].split("*")[5])+".src=img["+imgNum+"].src")
          }
        }
Avatar billede koch Nybegynder
05. december 2003 - 23:26 #5
Jeg opretter lige spg´et på ny.
Avatar billede roenving Novice
05. december 2003 - 23:28 #6
Har du et array med biler, som du godt via nogle billeder (en pr. bil ?-) vil associere med et link (eet pr. billede ?-)

-- det er jo, som vi vist tidligere har været inde på, muligt at oprette arrays i javascript med flere dimensioner OG med vidt forskellige datatyper:

var a = new Array();
a[0] = new Array();
a[0][0] = new Image();//første element er et Image-objekt
a[0][0].src = "biler/audi100.jpg";
a[0][1] = "Audi 100 1983";//andet element er en tekststreng
a[0][2] = 10000;//tredje element er et tal (f.eks. en pris)
a[0][3] = document.createElement('IMG');//fjerde element er et html-objekt
a[0][4] = ['forhjulstræk','benzin','lilla','4 døre'];//femte element er et array af egenskaber
a[0][5] = "http://www.audi.de/lkjæd";//sjette element er et link (tekststreng

osv.

så alt, hvad der hører til en bil, kan samles sammen i eet array !-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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