Forum > Klientspråk > JavaScript
Hejsan. Försöker åstakomma ett "loading" msg när jag läser in en fil med Jquery's AJAX "Load" funktion, fattar hur jag skall få den att visa sig, men inte hur jag ska få den att direkt försvinna när sidan laddats klart. Min nuvarande kod ser ut såhär:
$(document).ready(function(){
$("#family-tab li").corner("top 6px");
$(".wish-item ul").corner("6px");
$("#family-tab a").click(function(){
$("#loading").show();
$("#wish-list").load("wish-list.php", {w : 2});
});
});
Undrar även hur jag skall ändra "2" i loaden för att reflektera vilken ordning i länkarna som använts för att kalla på funktionen. Tex klickar man på länk/knapp nr 6 så skall det bli $("#wish-list").load("wish-list.php",6); (detta är så jag planerar att ladda in data, genom att använda 2an som ett ID).
Uppdaterat: Lade till {w : 2} så att jag kan hämta ut det postade värdet.
| Skriv uti din CSS eller i DOMreadyn för:
$("#loading").hide();det med 2, 6 du beskriver, var skulle man kunna hämta det ifrån? Du säger att det är något ID, finns ID:et någonstans i ditt a-element i wrappen #family-tab ? Om inte, gör det och inkludera det i din AJAX.load event.
Om det bara är en SortList Position dvs:
<a href="#">Voigtan</a>
<a href="#">Fwaky</a>
Förstår inte riktigt vart mer specifikt jag skall lägga
$("#loading").hide();
Angående länkarna, så är det helt rätt du förståt där.
skall ta mig en titt på "each" och se om jag kan lösa det på något smidigt sätt :) Återkommer med detta om jag inte lyckas lösa problemet.
Tittade på jquery Each, och fick just den biten att fungera. Nu har jag dock ett problem att den laddar in alla knappar, i mitt fall id 0 -> 6 efter varandra, vilket inte är det jag försöker åstakomma.
$("#family-tab a").each(function(i){
$("#family-tab a").click(function(){
getpage(i);
});
});Antingen förklara du konstigt som jag missförstått dig, men du har ett element #loading som du vill inte visar när sidan är "klar", antingen lägger du den så när DOM:en är redo dvs det finns content att visa, så döljer du din #loading by default.
Angångde din kod så skall jag försöka förklara vad för "fel" du har gjort:
$("#family-tab a").each(function(i){}$("#family-tab a").click(function(){
getpage(i);
});$("#family-tab a").each(function(i){
$(this).click(function(){
getpage(i);
});
});Elementet "loading" vill jag skall visas när Jquery håller på att läsa in en sida, det vill säga när man klickar på en länk i family-tab, så skall den komma upp men när sidan laddats och visas så skall den automatiskt försvinna. så det blir som en laddnings skärm, fast bara en liten text rad.
Och det du ansåg skulle fungera, fungerade självfallet. borde tänkt på att sätta this eftersom jag faktiskt redan är inne i min "family-tab a" "kategori". Tackar.
Är tabbarna ajax dokument?
lägg in en skript tagg längst ner som kör en jquery.hide() på elementet du vill ha.
Och om det är ajax tabbara eller liknande så finns det en callback funktion för det som du kan göra att den kör en hide() när tabben visas och ett start event när ajax-tabben laddas.