Avatar billede koch Nybegynder
16. januar 2004 - 23:36 Der er 11 kommentarer og
1 løsning

funktion(i) skal kaldes

En funktion popUp(i); der er oprettet 'for (i=0; i<16; i++)'. Funktionen er oprettet i ekstern .js-fil. Er det ikke muligt at kalde popUp(1) i på én side og popUp(2) på en anden side uden at jeg får vist 'for (i=0; i<16; i++)' på hver side hvor funktionen er kaldt med i='bestemt tal'.
Funktionen ser nogenlunde sådan ud:
function popUp(i)
{
txt="";
for (i=0; i<16; i++)
{
txt+="en masse tekst og billeder(i)";}           
document.write(""+txt+"");             
}

Burde jeg så ikke kunne kalde popUp(1) på en side for kun at få vist hvor i=1?
Avatar billede skovenborg Nybegynder
16. januar 2004 - 23:43 #1
ikke når du fyrer den ind i et loop. Så skal du gøre sådan her:
function popUp(i)
{
document.write("en masse tekst og billeder("+i+");
}
Avatar billede skovenborg Nybegynder
16. januar 2004 - 23:44 #2
av der manglede jeg noget:
document.write("en masse tekst og billeder("+i+")");

eller er det overhovedet det du mener ?-)
Avatar billede mat Nybegynder
16. januar 2004 - 23:45 #3
variablen i redefineres vel i dit for loop (hvor den sættes til 0). Iøvrigt vil din tekststreng aldrig udskrive værdien af i efterson i blot er en karakter i tekststrengen. den burde vel lyde noget i stil med:

function popUp(j)
{
txt="";
for (i=0; i<j; i++)
{
txt+="en masse tekst og billeder("+i+")";}           
document.write(""+txt+"");             
}

eller noget? :)
Avatar billede koch Nybegynder
16. januar 2004 - 23:48 #4
Min funktion ser ca. sådan ud
function popUp(i)
{
txt="";
for (i=0; i<16; i++)
{
txt+="<table><tr><td><img src=\"Pics/"+billede[i][0]+"/IMAGE001.jpg\" name=\"item_"+i+"\"></td></tr><tr><td><a href=\"#\" onMouseOver=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE002.jpg'\"; onMouseOut=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE001.jpg'\">.....";}           
document.write(""+txt+"");             
}

hvert billede[i] skal vises på seperate sider...
Avatar billede skovenborg Nybegynder
16. januar 2004 - 23:52 #5
hvad er så ideen med at køre det igennem et loop.

Medmindre der er meget god grund så kan du jo bare gøre sådan her:
function popUp(i)
txt = "<table><tr><td><img src=\"Pics/"+billede[i][0]+"/IMAGE001.jpg\" name=\"item_"+i+"\"></td></tr><tr><td><a href=\"#\" onMouseOver=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE002.jpg'\"; onMouseOut=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE001.jpg'\">.....";
document.write(txt);
Avatar billede koch Nybegynder
16. januar 2004 - 23:53 #6
funktionen virker. Jeg skal bare have gjjort sådan at jeg kan kalde en del af den. Altså kalde popUp(1) på en side og popUp(2) på en anden.
Avatar billede skovenborg Nybegynder
16. januar 2004 - 23:55 #7
hvis du derimod skal printe alle billederne ud på én af siderne og kun en enkelt på resten, så kunne du gøre det på denne måde istedet:
function popUp(i)
{
txt="";
if (i) {txt = "<table><tr><td><img src=\"Pics/"+billede[i][0]+"/IMAGE001.jpg\" name=\"item_"+i+"\"></td></tr><tr><td><a href=\"#\" onMouseOver=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE002.jpg'\"; onMouseOut=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE001.jpg'\">.....";}
else {
for (i=0; i<16; i++)
{
txt+="<table><tr><td><img src=\"Pics/"+billede[i][0]+"/IMAGE001.jpg\" name=\"item_"+i+"\"></td></tr><tr><td><a href=\"#\" onMouseOver=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE002.jpg'\"; onMouseOut=\"document.item_"+i+".src='Pics/"+billede[i][0]+"/IMAGE001.jpg'\">.....";}         
}
document.write(txt);           
}

så skal du bare kalde funktionen uden et argument (fx popUp() ) for at printe alle ud og fx popUp(1) hvis du kun vil have printet et enkelt billede ud.
Avatar billede koch Nybegynder
17. januar 2004 - 00:01 #8
Nu ikke alle de spg. ;o) Det virker Skovenborg. Det er helt kanon. Tak for hjælpen. Smid et svar
Avatar billede koch Nybegynder
17. januar 2004 - 00:03 #9
Fedt. Betingelsen 'if(i)' testes der så bare om der er angivet et argument i ved funktionskaldet?
Avatar billede skovenborg Nybegynder
17. januar 2004 - 00:10 #10
ja - eller rettere sagt den tester om i har en værdi (og dermed er true).

Ved nærmere eftertanke betyder det at du ikke kan kalde funktionen med i=0.

Derfor bliver du nok lige nød til at skrive:
if ((i) || i=0) {....
Avatar billede skovenborg Nybegynder
17. januar 2004 - 00:12 #11
eller måske lidt mere korrekt:
if (i != undefined) {....

så tester den mere direkte om i overhovedet er sat til noget som helst.
Avatar billede koch Nybegynder
17. januar 2004 - 22:10 #12
Jeg takker.
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