Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Litet problem med Jquery AJAX

Hultin
Hultin

Gradering

#18231

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.

 

... ORANGE HEARTS!
ID: #18231 | Skapades: 2009-10-22 02:00:04 | Tråden har 5 svar och har lästs 288 gånger.

voigtan
voigtan

Gradering

#18232

i 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>
Så vill du att den skickar in 0 på voigtan och 1 på Fwaky så är det bara att köra en jquery each så får du vilken position i DOM arrayn de olika elementen är.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 22 oktober 2009. Läs tidigare inlägg.
ID: #18232 | Skapades: 2009-10-22 06:47:11

Hultin
Hultin

Gradering

#18233

Förstår inte riktigt vart mer specifikt jag skall lägga

$("#loading").hide();

Jag förstår vad domready är, alltså när dom"en" har jobbat klart, så den då kan dölja. Men vet inte riktigt vart jag kollar om den är klar eller hur.

 

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);                                 
                                         });
                                      });

... ORANGE HEARTS!
ID: #18233 | Skapades: 2009-10-22 16:36:47

voigtan
voigtan

Gradering

#18234

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){}
Inget direkt att notera, den kommer loopar ut alla a-element inne i #family-tab vilket är det du är ute efter, problemet är resten av din kod:

$("#family-tab a").click(function(){
    getpage(i);                                
});
Nu när vi är i din loop så säger du åt den att alla a-element i #family-tab skall ha exakt samma Click Event.

$("#family-tab a").each(function(i){
    $(this).click(function(){
        getpage(i);                                
    });
});
bör vara det du är ute efter.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #18234 | Skapades: 2009-10-22 17:33:43

Hultin
Hultin

Gradering

#18235

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.

... ORANGE HEARTS!
ID: #18235 | Skapades: 2009-10-22 18:01:40

voigtan
voigtan

Gradering

#18236

Ä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.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #18236 | Skapades: 2009-10-22 18:09:46
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy