Birger wrote in dk.edb.internet.webdesign.clientside:
>
> Din kode er ikke specielt overskuelig.
Nej jeg ved det godt, det er noget rod!
> Det sparer ganske vist lidt plads, at skrive alting ud i een smøre, men...
> I dine <img..> skal name skal hedde id -
det ændrede ikke noget at skifte til "id". Der var bare kommet rod i den og det
hjalp, da jeg startede forfra.
> det er formentlig derfor det ikke
> virker i nogle browsere. name anvendes kun i <form>, og jeg er ikke sikker
> på at det er lovligt bare at nummerere elementer.
> Det ligner også en frygtelig masse indviklet programmering for at udføre en
> meget simpel operation.
>
> onmouseover ="this.src='img/s_X_over.jpg'"
> onmouseout ="this.src='img/s_X_out.jpg'"
>
> på img taget, vel at mærke, hvor X er billed nummeret, skulle kunne gøre
> det, hvis jeg ellers har tydet tingene rigtigt
> eller hvis <a> dækker over billedet, sætte dens:
>
> onmouseover(eller out) = "document.getElementById(
> 'X').src='img/s_X_over(eller out).jpg'";
>
> Filnavnet kan evt. udskiftes med en indexering i det array du preloader
> billederne i - hvis du slev kan finde ud af indekset, for jeg kan ikke...
> onmouseover(eller out) = "document.getElementById(
> 'X').src=document.MM_p[Y].src";
> hvor Y er indekset af det billede du vil have vist.
>
> Du har den her til at hente billederne :
> function MM_preloadImages() { //v3.0
> var d=document;
> if ( d.images){
> if ( !d.MM_p) d.MM_p = new Array();
> var i, j=d.MM_p.length, a=MM_preloadImages.arguments;
> for(i=0; i<a.length; i++)
> if ( a[i].indexOf("#") != 0){
> d.MM_p[j]=new Image;
> d.MM_p[j++].src=a[i];
> }
> }
> }
> og den kaldes med out og over billeder rodet sammen.
> Hvorfor ikke to billeder i hvert element, eller et array til out og et til
> over?
> I tilgift starter din nummerering af billederne med 1, mens indekseringen i
> arrayet starter med 0.
> Arrayet document.MM_p anvendes desuden aldrig til noget, så du kan lige så
> godt bare oprette et Image, som ikke har nogen reference andre steder.
> Billedet vil svjv stadig blive hentet til cache.
> Jeg ved ikke om javascript har en garbagecollector som f.eks Java og nogle
> af de andre sprog - hvis det har, vil document.MM_p alligevel blive fjernet,
> fordi den ikke bruges.
> Linien
> if ( !d.MM_p) d.MM_p = new Array();
> opretter et nyt array, hvis der ikke allerede findes en variabel i document
> der hedder MM_p.
> Og det er da fikst nok. Bortset fra, hvis der allerede findes en - som måske
> oven i købet ikke er et array? Så går der koks i din funktion. Og selv om
> det er et array, bliver dine billeder blot tilføjet til det eksisterende
> array, og ødelægger måske eksisterende data.
> Det vil måske være smartere, helt enkelt at oprette d.MM_p = new Array()
> under alle omstændigheder.
> eller helt fikst, at lade være med at pille ved den, hvis den eksisterer :
> if ( !d.MM_p) {
> d.MM_p = new Array();
> ... resten af din oprettelse af arrayet...
> }
tak for din engagerede gennemgang. desværre er det perler for svin, da jeg er
pænt blank mht. Javascript og hvad der egentlig foregår (når jeg copy-paster)
Ja, sådan er det, jeg er mere til det grafiske...
> eller måske er det endnu smartere, bare at oprette den som en global
> javascript variabel, uden at rode document ind i tingene...
Pas!
>
> I det store og hele er jeg mere forundret over at det virker i FF, end at
> det ikke gør det i de andre...
Ja, det er så det provokerende, som er med til at besværliggøre arbejdet :)
> Undskyld.
>
> Birger
>
det er mig der undskylder ved at være helt blank, men jeg håber andre kunne
bruge dine svar. Jeg ved godt det er /clientside jeg er på, men jeg tænkte nogen
måske kunne sige "Fjern den der" ;)
Vh Malene
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials