Till Startsidan

Skaffa webbhotell?
Läs JavaScript.nu's jämförelse av webbhotell.
Med priser från
9 kr / månad.

Genom ett samarbete får alla JavaScript.nu-
besökare dessutom 100 kr i rabatt vid beställning.


Re: LIGHTBOX2 konflikt

[ JavaScript.nu's Forum ] [ Viktigt om forumet ] [ JavaScript.nu's Startsida ]


Forum / LIGHTBOX2 konflikt mellan olika script
 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!!!


Postat av Pagerank-info.com (83.251.168.47) den 11 Augusti, 2009 kl 00:39:42.
Som svar på: LIGHTBOX2 konflikt mellan olika script postat av Josefine den 10 Augusti, 2009 kl 23:34:29.


Svar på inlägget:


Posta ett svar:

Namn:
E-Mail:
Rubrik:
Meddelande:
Ja tack, maila mig om andra svarar på detta inlägg.
Ja tack, maila mig om andra svarar på mitt inlägg.


[ JavaScript.nu's Forum ] [ Viktigt om forumet ] [ JavaScript.nu's Startsida ]






Copyright © Omid Rouhani 1997-2022; Alla rättigheter reserverade.
Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ]