Tsukeo Skrevet 22. november 2016 Del Skrevet 22. november 2016 Jeg holder på med et prosjekt med å lage en statisk nettside med JavaScript + jQuery, hvor vi skal lage en nettside til en oppfunnet hyttebedrift. Det er bare 3 dager igjen til jeg skal levere inn, men jeg aner ikke hvorfor variablene mine for antall personer fungerer eller hvorfor jeg ikke kan slette navnene. Jeg tror det har noe å gjøre med at variablene til antall navn eller variabelen som holder alle navnene ikke oppdateres. Hvordan kan jeg gjøre det? Her er nettsiden, og problemer ligger i å legge inn personer og så prøve å regne ut pris. Om det er 1 person, vil prisen si at det er 1 person. Om jeg legger til en person, får jeg fortsatt beskjed om at det bare er 1 person. Om jeg legger til enda en person, vil jeg DA få 2 personer; så tre personer; og om jeg trykker på knappen selv om det er fire personer, vil den ikke legge til en til (som er meningen), men prislisten sier nå at det er 4 personer. Til slutt, å fjerne navn fungerer merkelig nok bare om listen er full, og det fungerer bare på det første elementet og jeg aner ikke hvorfor. Kan noen kanskje gi meg en pekepinn på hva jeg gjør galt, og si hva jeg kan gjøre for å få den effekten jeg ønsker? Her er nettsiden: http://folk.ntnu.no/williamo/prosjekt2016/bestill.html# På forhånd, takk! Lenke til kommentar
FraXinuS Skrevet 23. november 2016 Del Skrevet 23. november 2016 Problemet med remove er mest sannsynlig at det ikke legges til event listeners på close knappen på de nye elementene som dynamisk legges til. Når du skriver removePerson.on('click', ...) så er det bare de elementene som allerede er på siden når den blir lastet som blir fanget opp. Så hvis du vil at close-knappen på de nye elementene skal fungere så må du enten legge til en click listener direkte på elementet når det opprettes eller du kan bruke "live" event listeners som vil fange opp nye elementer noe slik som dette: $('.navnContainer').on("click", ".close", function() { console.log($(this).parents()) if (arrayNavn.length !== 1) { $(this).parents("span").remove(); } else { errorLog("Du må ha minst en person!"); } }); Mulig det er noe av det samme problemet med antall personer også. Prøv å bruk $('.navn') direkte i calcPrice. Anbefaler også at du bruker "var" på alle variablene dine. Uten "var" så ender du opp med variabler som er tilgjengelig utenfor scopet du er i som gjør det vanskelig å holde oversikt på hvor ting endres når programmet blir større. 1 Lenke til kommentar
Tsukeo Skrevet 23. november 2016 Forfatter Del Skrevet 23. november 2016 Takk, nå fungerer det helt fint! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå