Enkel princip:
- Dölj allt
- Plocka ut rätt tagg med id ifrån window.location.hash
- Visa den
Skippa animeringar, gör det enkelt. Använd show() och hide()
Du vill minimera problemet till dess kärna, dela upp det i småbitar. Visst, animationerna fungerar säkert jättebra, men de kanske döljer det helt uppenbara felet för dig? I grund och botten är ditt problem: fel div visas. Ta bort allt annat skräp (det är skräp i sammanhanget - jättesnygga animeringar är jättetrevligt, men om de visar fel saker så är det ju ändå bara skräp i slutändan..)
Du behöver inte nödvändigtvis ändra på din befintliga sida, gör en ny sida med bara det viktigaste, sedan löser du det problemet du har på just den sidan. När det sedan fungerar så kan du se till att använda den lösningen på den riktiga sidan, och då kan du ha alla dina animationer.
Väldigt viktigt när det gäller programmering (och felsökning i allmänhet): Undersök varje sak för sig, och när man vet att det fungerar som det ska, i ett sammanhang. Jag har gått i den fällan många, många gånger (och gör det fortfarande lite då och då..) När jag suttit och nästan dunkat huvudet i bordet efter flera timmars slit hittar jag felet; ett litet, litet tankefel i en liten, liten, men ack så viktig komponent. Då brukar jag bli ganska sur på mig själv bara för att jag inte felsökte delarna var för sig _först_..
Själv bryr jag mig inte nämnvärt om du är nybörjare eller inte, metoden gäller alla, alltid.
Därför: plocka bort alla animationer, börja nysta i problemet. Kontrollera vilka indata du får, och vilka utdata det ger. Testa att manuellt sätta egna indata på olika ställen, vad ger det för resultat?
Att ta ett stort system och försöka hitta felet är lite som att ge någon en svart låda, sedan ställa frågan: "Varför fungerar den inte?" Även om man öppnar den svarta lådan så är grejjerna ändå ihopsatta innuti den, det finns inga ritningar (på varken detaljnivå eller blocknivå) och det går inte att se med blotta ögat vad som händer på vägen mellan ingångarna och utgångarna. För att ha en rimlig chans att hitta fel av annan art än väldigt, väldigt simpla så behöver man plocka isär grejjerna.. :)
Om vi nu återgår till din kod: Jag ser två vägar:
a) Du rensar i din kod bort allt som inte är relevant för problemet (förslagsvis med hjälp av kommenterar, då går det enkelt att lägga till dem igen), sedan kommenterar du vad du förväntar dig att de olika raderna gör, sen tittar du igenom alltihopa och funderar på om det i teorin skulle kunna fungera. Efter det frågar du oss om hjälp, och bifogar då koden inkl. kommentarer
eller
b) Skriv om det ifrån början, men ta det i etapper. Flashigt grunk som animationer kan man enkelt lägga till sist..
Båda vägarna är nyttiga, du lär dig olika, men väldigt bra, saker som du kommer ha stor nytta av.
Om du väljer att skriva om det ifrån början så ska du få lite snabb vägledning: Sätt upp delmål!
Förslag:
-
Var hittar jag information som kan hjälpa mig att hitta den div-tagg som ska visas?
-
Verifiera att din lösning på punkt 1) verkligen fungerar innan du fortsätter med punkt 3)!
-
Använd jQuery (om du nu vill använda jQuery, men jag utgår ifrån det) för att hitta rätt div-tagg
-
Verifiera din lösning för punkt 3), t.ex. genom att sätta bakgrundsfärgen till något spektakulärt på den valda div-taggen
-
Om du måste dölja en massa div-taggar så gör du det nu, samt visar rätt div-tagg.
-
Verifiera!
-
Nu kan du börja snegla lite på animationer, men glöm inte att verifiera så du ser vilken animation som det bara blir knas av.. :)
Lycka till, och välkommen åter :)