webForumDet fria alternativet

jQuery, laddar inte in innehåll efter fadeOut

7 svar · 1 950 visningar · startad av Gildebrand

GildebrandMedlem sedan juni 2009920 inlägg
#1

Har lite problem med ett script

<script>
$('a').click(function(e){ 
e.preventDefault();
	$('#maincontent').fadeOut('fast',function(){ 
		$('#maincontent').load(this.href + ' #maincontent',function(){ 
			$('#maincontent').fadeIn('fast'); 
		});
	});
});
</script>

Om jag kör bara load-funktionen, så funkar det någorlunda bra, förutom att den lägger till #maincontent från den begärda sidan i det befintliga #maincontent-blocket, så det blir två containers inuti varandra. Hur löser man det?

Iallafall, när jag kör fadeOut innan .load, så händer det inget :(

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Det är inte så konstigt då this.href pekar mot #maincontent det du få göra är att spara à-elementets this i en variabel som du kan komma åt längre ner i din kod.

Om ingen har postat svaret på hur man kan skriva (sitter inte vid en dator nu) så postar jag rätt kod ikväll

voigtann1Medlem sedan juni 20019 519 inlägg
#3

Det är inte så konstigt då this.href pekar mot #maincontent det du få göra är att spara à-elementets this i en variabel som du kan komma åt längre ner i din kod.

Om ingen har postat svaret på hur man kan skriva (sitter inte vid en dator nu) så postar jag rätt kod ikväll

GildebrandMedlem sedan juni 2009920 inlägg
#4
var link = this;

Nåt sånt menar du? Och att sen referera till link istället för this?

EDIT: Funkade lysande :)
Men hur löser jag det med att .load inte bara lägger in innehållet från #maincontent i boxen (med samma id), utan även själva boxen #maincontent? Blir en box i boxen, båda med samma id.

voigtann1Medlem sedan juni 20019 519 inlägg
#5

Om du vill ersätta den så kör inte .load kör vanlig .ajax och på success så filtrera du ut datan och kör en $('#maincontent').replaceWith(newMainContent);

GildebrandMedlem sedan juni 2009920 inlägg
#6

Jag får inte riktigt till det, vill spara ner boxen #maincontent från länkadressen i en variabel, och har försökt med följande

var ajax;
	$.get(link.href + ' #maincontent',function(data){ ajax = data; alert(ajax); });

Då verkar det inte köras över huvud taget :(

voigtann1Medlem sedan juni 20019 519 inlägg
#7

.get kan du inte använda dig av #maincontent (vad jag känner till)

Men:

$.get(link.href, function(data) {
	var main = $("#maincontent"),
	    replaceMain = $("#maincontent", data);

	main.replaceWith(replaceMain);

});
GildebrandMedlem sedan juni 2009920 inlägg
#8

Tack så jättemycket! Grymt av dig att hjälpa till så här :)
Det funkade alldeles utmärkt med din kod!

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)