11. marts 1999 - 00:00
Der er
5 kommentarer og 1 løsning
Mystik...
Mit problem er at hvis jeg initierer CurrentImg med et billede som findes (læs: NAME="5" eller NAME="7" eller NAME="9") virker nedenstående. MEN. Hvis jeg initierer CurrentImg med f.eks. 4 virker det ikke. Med "virker ikke" menes der at JavaScripten ikke kører if sætningen med 'click' igennem. Hvad helvede sker der? Jeg har følgende HTML: <TR> <TD><IMG SRC="img/blank.gif" WIDTH="5" HEIGHT="1" ALT=""></TD> <TD><IMG SRC="img/blank.gif" NAME="5" WIDTH="5" HEIGHT="11" ALT="" BORDER=0> </TD> <TD><FONT FACE="Arial,Helvetica" SIZE="2"><A HREF="produkter/sorteringsmapper.html" TARGET="main" onMouseOver="JFLshift('over',5);" onMouseOut="JFLshift('out',5);" onClick="JFLshift('click',5);">Sorteringsmapper</A></FONT></TD> </TR> <TR> <TD><IMG SRC="img/blank.gif" WIDTH="5" HEIGHT="1" ALT=""></TD> <TD><IMG SRC="img/blank.gif" NAME="7" WIDTH="5" HEIGHT="11" ALT="" BORDER=0> </TD> <TD><FONT FACE="Arial,Helvetica" SIZE="2"><A HREF="produkter/protokoller.html" TARGET="main" onMouseOver="JFLshift('over',7);" onMouseOut="JFLshift('out',7);" onClick="JFLshift('click',7);">Protokoller</A></FONT></TD> </TR> <TR> <TD><IMG SRC="img/blank.gif" WIDTH="5" HEIGHT="1" ALT=""></TD> <TD><IMG SRC="img/blank.gif" NAME="9" WIDTH="5" HEIGHT="11" ALT="" BORDER=0> </TD> <TD><FONT FACE="Arial,Helvetica" SIZE="2"><A HREF="produkter/diversemapper.html" TARGET="main" onMouseOver="JFLshift('over',9);" onMouseOut="JFLshift('out',9);" onClick="JFLshift('click',9);">Diverse</A></FONT></TD> </TR> ...og følgende java script: if (BrowserOK) { CurrentImg = 5 } function JFLshift (JFLaction, Img) { if (BrowserOK) { if (JFLaction == 'over' && Img != CurrentImg) { document[Img].src = LinkImages[1].src } if (JFLaction == 'out' && Img != CurrentImg) { document[Img].src = LinkImages[3].src } if (JFLaction == 'click' && Img != CurrentImg) { document[Img].src = LinkImages[2].src document[CurrentImg].src = LinkImages[3].src CurrentImg = Img } } }
Annonceindlæg fra Deloitte
11. marts 1999 - 13:44
#1
Det er JFLshift den er gal med. Hvis det skal virke, skal det se sådan her ud: function JFLshift (JFLaction, Img) { if (BrowserOK) { if (JFLaction == 'over' && Img != CurrentImg) { document.images[Img].src = LinkImages[1].src } if (JFLaction == 'out' && Img != CurrentImg) { document.images[Img].src = LinkImages[3].src } if (JFLaction == 'click' && Img != CurrentImg) { document.images[Img].src = LinkImages[2].src document.images[CurrentImg].src = LinkImages[3].src CurrentImg = Img } } } Du havde glemt at henvise til Img og CurrentImg i document.images. Det bliver du nødt til, hvis du skal kalde billederne med deres navn. /Thor
11. marts 1999 - 13:54
#2
btw, du skal også huske at ændre dine links. Du skal ændre <A HREF="produkter/sorteringsmapper.html" TARGET="main" onMouseOver="JFLshift('over',5);" onMouseOut="JFLshift('out',5);" onClick="JFLshift('click',5);"> til <A HREF="produkter/sorteringsmapper.html" TARGET="main" onMouseOver="JFLshift('over','5');" onMouseOut="JFLshift('out','5');" onClick="JFLshift('click','5');"> Husk at gøre det ved hvert af dine links. Ved at sætte 2 styks '' rundt om den anden parameter ved funktionskaldene til onMouseover, onMouseout og onClick, viser du at det er en streng (string), istedet for et tal (integer). /Thor
11. marts 1999 - 19:05
#3
Det hjalp ikke. Din version virker hvis det er billedets nummer jeg henviser til. Det er det ikke.
13. marts 1999 - 14:55
#4
Det vil virke, hvis du giver billederne et fornuftigt navn, istedet for et nummer. Når du bruger et nummmer som navn, bliver browseren forvirret. Eller rettere, du kan ikke se forskel på om det er en string eller en integer. Giv dem et normalt navn, så virker min kode /Thor
14. marts 1999 - 11:33
#5
Det gør jeg også nu. Billederne hedder a, b, c, d, osv. Her er mit script: <SCRIPT LANGUAGE="JavaScript"> <!-- // window.onerror = null; if (document.images) BrowserOK = true; if (BrowserOK) { LinkImages = new Array(); LinkImages[1] = new Image(); LinkImages[1].src = "img/pil_over.gif"; LinkImages[2] = new Image(); LinkImages[2].src = "img/pil_on.gif"; LinkImages[3] = new Image(); LinkImages[3].src = "img/blank.gif"; } if (BrowserOK) { CurrentImg = 'a' } function JFLshift (JFLaction, Img) { if (BrowserOK) { if (JFLaction == 'over' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[1].src') } if (JFLaction == 'out' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[3].src') } if (JFLaction == 'click' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[2].src') eval('document.' + CurrentImg + '.src = LinkImages[3].src') CurrentImg = Img } } } // --> </SCRIPT>
14. marts 1999 - 12:51
#6
Dit problem opstår fordi browseren fejler i linien: eval('document.' + CurrentImg + '.src = LinkImages[3].src') hvis CurrentImg er sat til et billede som ikke findes. Derfor sæt CurrentImg = 'none' fra starten af, og test på dette: if (BrowserOK) { CurrentImg = 'none' } function JFLshift (JFLaction, Img) { if (BrowserOK) { if (JFLaction == 'over' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[1].src') } if (JFLaction == 'out' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[3].src') } if (JFLaction == 'click' && Img != CurrentImg) { eval('document.' + Img + '.src = LinkImages[2].src') if (CurrentImg != 'none') { eval('document.' + CurrentImg + '.src = LinkImages[3].src') } CurrentImg = Img } } }
Vi tilbyder markedets bedste kurser inden for webudvikling