Kjapp og trygg hosting for Wordpress

Merkelig JQuery feil?

Hei,
se på dette jquery-scriptet her:
Kode:
					$('.saveSettingsButton').click(function(e)
					{
						e.preventDefault;
						
						var pageTitle = $('#txtPageTitle').val();
						var standardEmail = $('#txtStandardEmail').val();
						var url = 'Settings.aspx?action=saveChanges&pageTitle=' + pageTitle + '&standardEmail=' + standardEmail;

						createMask();

						$.get(url).complete(function() 
						{
							changeMask();

							setTimeout(hideMask, 2000);
						});					
						alert('aa');
					});

Kjører jeg dette nå, så fungerer det fint. Tar jeg bort "alert('aa')" på slutten, så fungerer dette ikke. Da vil ikke den kjøre get funksjonen.

Det er mulig at jeg overser noe her, men kan i så fall noen peke på det da?:p
 

adeneo

Medlem
Problemet er at ajax, som $.get er en forkortelse for, er asynkront.

Det vil si at den alert() saken utsetter litt slik at ajax funksjonen får tid til å gjøre seg ferdig, mens uten alert() så går du sannsynligvis videre til en annen side og ajax funksjonen rekker ikke å bli ferdig.

Grunnen til at jeg tror du går til en annen side er fordi du mangler noen parenteser:

PHP:
e.preventDefault();

er en funksjon og skal ha parenteser for å kjøre, og hindre "default action" av hva enn det er du trykker på.
 
Takk for svar adeneo.
Jeg blir ikke sendt til ny side, det var ikke problemet.

Du har helt rett med () bak preventDefault, det løste hele saken. Når jeg la den der så kunne jeg ta bort alert, og det fungerte som det kunne.
Jeg skulle bare kjapt skrive om denne her, og glemte ().
 
Topp