Utan att kolla på din sida så låter det som att du har problem med dina Namespaces alternativt att du råkat skapa globala variabler som skriver över varandra. Det är rätt vanliga problem som brukar uppstå när man klistrar in mycket gratiskod (från olika utvecklare) som inte är objektorienterad eller bara dåligt skriven. Gör så här. Skapa en sida där du bara lägger in din meny, funkar menyn då? Skapa sen en sida där du lägger in bildgalleriet, funkar galleriet då? Om det fungerar då så är antagligen problemet att båda applikationerna försöker använda sej av samma variabels, object, functions (osv) -namn på ett eller flera ställen. Då är det bara att sätta igång och debugga vilket kräver att du kan javascript och förstår koden. Men det kan ju vara något annat fel också, det är svårt att veta utan att se din hemsida. Det här är i alla fall det jag skulle gissa på. Ett annat fel skulle även kunna vara att du inte kopierat in koden rätt osv. Men börja med att separera koderna åt och se om de fungerar var för sej. Kör det gärna i firefox då du får rätt så bra felmeddelanden där. Exempel på vanliga fel som kan uppstå när man bara länkar in en massa dåligt skrivna kodpaket. Ex1 Du länkar in två filer menu.js och image.js i menu.js så står det så här var position = 23; function drawMenu() {..... osv i image så står det följande var position = 65; function drawImage() {..... osv Nu får du problemet för du försöker skapa variabeln position två gånger och allt kommer skita sej. Båda funkar var för sej, men inte tillsammans.
Rätt sätt att skriva detta på hade varit i menu.js var Menu = { position:23; drawMenu:function(){blablalba... osv} };
i image.js var Image = { position:23; drawImage:function(){blablalba... osv} }; Nu skulle du inte få problem med att två variabler heter samma sak (så länge inte två classer heter samma sak) Ex2 De har glömt att deklarera variablerna med var först har de skrivit function Menu() { position = 23; }
Förutom att detta är fel sätt att skriva en funktion på så blir position global och används den senare eller liknande så kan du få rätt så skumma fel. Ex3 Man använder onload funktionen på rätt sätt. Istället för att lägga onload i body-taggen (som är fel) så lägger man den i js-filen (som är rätt)
Problemet är bara att om du har två en i vardera js-fil så skriver den sista över den första window.onload = function() { bla bla bla } eller window.onload = starImage; får bara finnas på ett ställe. Detta betyder att om du först länkar in menu.js och den har en window.onload = Menu.drawMenu; och sen image.js som i sin tur har window.onload = Image.drawImage; Nu kommer inte funktionen Menu.drawMenu(); att köras då image.js har skrivit över det. Är detta fallet så är det bara att skriva följande window.onload = function() { Menu.drawMenu(); Image.drawImage(); } På ett ställe och då ta bort de andra två window.onload så kommer båda att fungera. Detta är tre rätt vanliga fel som brukar kunna uppstå om man bara länkar in en massa bibliotek utan att läsa igenom koden först eller förstår vad den gör. (Vilket kan vara rätt svårt om det är stora bibliotek)
Är biblioteken bra skrivna så är det sällan några större problem men de flesta gratis script på nätet är tyvärr under all kritik. (Jag har vare sej tittat närmare på lightbox eller din meny så detta är bara generellt och inget riktat mot just dom två) / Janne www.pagerank-info.com | Hej! Har problem med att min js kod på min indexsida inte funkar ihop. Vill använda mig av bildvisningsapplikationen Lightbox2 (se: http://www.huddletogether.com/projects/lightbox2/#contact). Tydligen funkar inte de scripten ihop med mina tidigare för en dropdown meny. UPPSKATTAR HJÄLP!!! |
|