Visa bilder i bildspel med Javascript

Permalänk

Visa bilder i bildspel med Javascript

Jag håller på att ska göra en webbplats med ett enkelt bildspel, där användaren kan välja bilder med checkboxes och sedan, genom att klicka på "Visa bildspel" komma vidare till nästa webbsida där valda bilder visas. På den sidan skapas också en meny i form av en rullist med filnamnen på bilderna. Problemet är bara att jag inte riktigt får till funktionen på sida ett så att informationen om bilderna skickas med.

Problemet verkar vara en bit in i funktionen, på raden med:

pictList[i] = imgFiles[i]; //

Så här ser funktionen ut:

var pictList = new Array(); // Array för bildernas filnamn // pictList är en global variabel, för att man sedan ska kunna referera till den // via window.opener i det dokument som öppnas i det nya fönstret. var imgFiles = new Array("pics/boats.jpg", "pics/butterfly.jpg", "pics/church.jpg", "pics/flower.jpg", "pics/glass.jpg"); // Filnamn/sökväg på bilderna som ska visas. // Spara bilder och gå till bildspelet i ett nytt fönster function openSlideShow() { while (pictList.length > 0){ pictList.pop(); }//While slut. var box = document.forms[0].image; //Talar om vart checkboxarna finns. for (i=0; i<box.length; i++){ //Går igenom alla checkboxar. if (box[i].checked == true){ //Vad som sker om villkoret är sant: pictList[i] = imgFiles[i]; // --------Här är problemet-------- Skapar en dynamisk lista med ikryssade filnamn. newWindow(650,550,"uppg6-bildspel.html"); //Storleken på nya fönstret. return true; } //If-sats slut. } //For-loop slut. window.alert("Du måste välja en bild först."); //Visas om inga bilder valts. return false; }

Det finns mer kod och funktioner, och sida två är skapad, men det är i den här det krånglar. Någon som kan hjälpa mig att komma vidare?

Permalänk

Varför kör du denna koden?:

while (pictList.length > 0){ pictList.pop(); }//While slut .

Istället för pictList[i] = imgFiles[i] borde du köra picList.push(imgFiles[i]) då du har en if-sats i for-loopen.

if (box[i].checked == true){ //Vad som sker om villkoret är sant: pictList.push(imgFiles[i]); // --------Här är problemet-------- Skapar en dynamisk lista med ikryssade filnamn.

Detalj: Det finns ingen bra anledning att använda konstruktor istället för literal för att skapa en ny array. Istället för "new Array()", använd "[]".

Permalänk
Skrivet av mel0dy:

Varför kör du denna koden?:

while (pictList.length > 0){ pictList.pop(); }//While slut

Tack för hjälpen! Med lite mer styrande så har jag fått i ordning på funktionen nu =).

pictList.pop rensar index om användaren klickar lite fram och tillbaka: blir inga dubbletter med bilder i bildspelet sedan.

Permalänk
Medlem
Skrivet av jeahnette:

Tack för hjälpen! Med lite mer styrande så har jag fått i ordning på funktionen nu =).

pictList.pop rensar index om användaren klickar lite fram och tillbaka: blir inga dubbletter med bilder i bildspelet sedan.

Kör en piclist = []; istället för att loopa. Ingen mening med att poppa objekt ett och ett när allt ändå ska bort.

Visa signatur

Kom-pa-TI-bilitet