mboost-dp1

jQuery - form virker ikke anden gang.


Gå til bund
Gravatar #1 - qed
28. okt. 2011 16:17
Jeg er ikke den skarpeste til jQuery eller JavaScript, så jeg er løbet ind i et problem, som jeg ikke selv kan gennemskue.

Jeg har lavet en "Tip til en ven"-funktionalitet, hvor jQuery laver en popup-side, ved klik på et link. Når felterne er fyldt ud sendes data til et php-script med et AJAX-kald.

Ved 'success' ændres HTML'en i en div, så der vises en Tak-besked og en mulighed for at trykke "Send til flere venner". Trykker man "Send til flere" ændres HTML'en tilbage, så formen vises igen.

Problemet er, at formen på dette tidspunkt ikke virker længere. Det er som om, at noget af Javascriptet ikke bliver kørt igen. Hvis man udfylder formen og trykker "Send" så loades siden bare forfra igen, med form-data tilføjet i adresse-linjen.

jQuery kan ses her: http://pastebin.com/RpAfF9dV

Er der nogen, der kan gennemskue, hvorfor formen ikke virker anden gang man forsøger?

Hvis jeg har lavet nogle andre jQuery- eller Javascript-bommerter, så sig endelig til.

På forhånd tak,
qed
Gravatar #2 - qed
28. okt. 2011 16:38
Nåh, jeg tilføjede et tomt <div> under formen, som jeg bruger til at vise Tak-beskeden i. Så er jeg ude over problemet med at fjerne HTML og indsætte det igen.

Men jeg vil da gerne høre, hvis nogen har et bud på, hvorfor det oprindelige ikke virkede? Og selvfølgelig hvis der er andet galt :)
Gravatar #3 - izym
28. okt. 2011 19:47
Mit umiddelbare bud er, at da du fjerner content i #ven_content, fjerner du også de events jQuery er registreret via. Når du så indsætter din form i #ven_content igen, er den ikke registreret til nogle callback funktioner i jQuery.

En bedre løsning er at blot skjule formen i #ven_content med "display: none;".
Gravatar #4 - Daniel-Dane
29. okt. 2011 10:42
Ved første øjekast ser det da ud til, at qed bruger live(), så det burde ikke være problemet.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login