Avatar billede koch Nybegynder
05. december 2003 - 23:28 Der er 4 kommentarer og
1 løsning

Funktion oprettes for hver objekt i array

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]' f.eks. og få:

    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 roenving Novice
05. december 2003 - 23:29 #1
Avatar billede koch Nybegynder
05. december 2003 - 23:43 #2
Smart ;o)
Jeg har fået oprettet arrayet med de forskellige info om hver bil, måske ikke heltså smart ;o)
Hvordan får jeg lagt imgShift(); ind i 'biler'-arrayet til hver bil.

Forslag:
Jeg opretter

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")
          }
        }

og lægger imgSift(); ind i 'biler'-arrayet til hver bil. Vil imgShift() så benytte værdien for den pågældende bil?

Mit problem er imgShift-funktionen.
Avatar billede roenving Novice
06. december 2003 - 00:10 #3
Men du kan jo bare plukke værdierne ud af arrayet i din funktion, så du henviser til en bestemt bil, nå du kalder funktionen:

function udtraekData(n){
  a = biler[n];
  document.images['bil_'+n].src = a[0].src;
}
Avatar billede koch Nybegynder
07. december 2003 - 19:33 #4
Det er præcist det jeg har brug for.
Jeg har:

Mit array til hver bil:
var biler=new Array()
biler[0] = "mark*year*km*note*price*1*1"
biler[1] = "mark*year*km*note*price*2*5"
.
.
biler[8] = "mark*year*km*note*price*8*33"

Mit array til billederne:

var img=new Array();
        for (i=0;i<biler.length; i++){
          for (j=0;j<=4;j++)
          {
          img[parseInt(biler[i].split("*")[6])+j] = new Image();
          img[parseInt(biler[i].split("*")[6])+j].src="Pics/"+biler[i].split("*")[0]+"/IMAGE00"+(j+1)+".JPG";
          }
        }     

Min funktion som opretter billederne og hvorfra imgShift(); skal kaldes(jeg har fjernet det 'overflødige'):

function printCar1(){
var WstatusOver, WstatusOut, dataOver, dataOut
txt="";
for (i=0; i<8; i++){
txt+="<td><a href=\"java script:imgShift();\"><img src=\"Pics/"+biler[i].split("*")[0]+"/IMAGE001.jpg\" name=\"bil_"+biler[i].split("*")[5]+"\"></a>}
document.write("<tr>"+txt+"</tr>")
}

Jeg havde tænkt at min funktion imgShift(); kunne se således ud, hvor [i] holder styr hvilken bil der klikkes på og henter de korrekte data fra arrayet 'biler'::

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

'imgNum' ændrer sig for hver gang jeg klikker på billedet, så denne værdi hentes ikke fra arrayet biler(dog sættes den lig 'imgStart[i]', hvis værdi stammer fra arrayet, fra starten. Herefter ændres  'imgNum' med 1 for hvert klik).

Så det eneste jeg 'plukker' fra arrayet er værdien for 'imgStart' resten klarer funktionen
Avatar billede koch Nybegynder
26. december 2003 - 09:56 #5
er besvaret i andet spg. ;o)
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