Avatar billede Slettet bruger
19. maj 2008 - 17:01 Der er 7 kommentarer og
2 løsninger

Vis billede med javascript - problem med Loop

Hej

Jeg har lavet en side hvor man ved mouseover får vist et billede. Problemet er at der er mange billeder på siden og de derfor bliver lavet i et Do Loop hvor de får hver deres id. Men når billederne bliver lavet i loopet kan java scriptet ikke finde dem og siger obejektet er lig med nul, er der nogen anden måde at gøre dette på?

Her koden:

java script:
<script language="javascript">
function show(id,x,y,tf) {
    if (tf == true) {
        id.style.display = "block"
        id.style.left = x + "px"
        id.style.top = y + "px"
    }
    if (tf == false) {
        id.style.display = "none"
    }
}
</script>

ASP koden:

Før dette er billederne blevet hentet fra databasen
Do until rs.EOF   

<img src="<%=picturePath%>" style="position:absolute;display:none;" id="<%=id%>">

<img src="../images/seePicture.gif" width="20" height="20" onmouseover="show(<%=id%>,0,0,true)" onmouseout="show(<%=id%>,0,0,false)">

rs.MoveNext
Loop

Har tjekket at de får det rigtige id osv.

Der er selvfølgelig noget mere kode, men dette burde være det relevante.

På forhånd tak.
Avatar billede keysersoze Guru
19. maj 2008 - 17:32 #1
i stedet for fx

id.style.display

skal du skrive

document.getElementById(id).display
Avatar billede Slettet bruger
19. maj 2008 - 17:51 #2
Det virkede ikke, med mindre jeg har gjort noget forkert?

Her er koden jeg har prøvet:

<html>
<head>
<script language="javascript">
function show(id,x,y,tf) {
    if (tf == true) {
        document.getElementById(id).style.display = "block"
        document.getElementById(id).style.left = x + "px"
        document.getElementById(id).style.top = y + "px"
        //id.style.display = "block"
        //id.style.left = x + "px"
        //id.style.top = y + "px"
    }
    if (tf == false) {
        document.getElementById(id).style.display = "none"
        //id.style.display = "none"
    }
}
</script>
</head>
<body>
<a href="Se profil billede" onmouseover="show(image1,0,0,true)" onmouseout="show(image1,0,0,false)">Vis billede</a>
        <%
            'Dim i
            'For i=1 to 10
        %>
        <img src="lambo_logo_1.jpg" style="position:absolute;display:none" id="image1">
        <%
            'Next
        %>
</body>
</html>
Avatar billede solle Nybegynder
19. maj 2008 - 18:35 #3
<a href="Se profil billede" onmouseover="show('image1',0,0,true)" onmouseout="show('image1',0,0,false)">Vis billede</a>

prøv det....
Har tilføjet ' ved billedenavnene!
Avatar billede Slettet bruger
19. maj 2008 - 18:48 #4
Har lige prøvet, det gik den slet ikke med til :) "style er null eller ikke et objekt"
Avatar billede solle Nybegynder
19. maj 2008 - 19:13 #5
faktisk så virker den...

Den ved bare ikke hvilket ét af de 10 billeder den skal benytte da de alle har samme navn (ID)...

prøv at ændre "<img src="lambo_logo_1.jpg" style="position:absolute;display:none" id="image1">" til:

<img src="lambo_logo_1.jpg" style="position:absolute;display:none" id="image<%=i%>">

(Ved ikke om du vil have alle 10 vist når du har musen over 1 link, men kan forestille mig at du vil have et link til hvert foto.
Avatar billede keysersoze Guru
19. maj 2008 - 19:49 #6
det skal nok nærmere være

id="<%=rs("id")%>">

da de må have et unik id fra databasen.
Avatar billede Slettet bruger
19. maj 2008 - 22:09 #7
arh endelig kom det til at virke :) Det var rigtigt at den ikke kunne finde ud af det hvis der var flere end en. Udover det kunne den heller ikke finde ud af det hvis man brugte tal. I kan begge smide et svar. Tak for hjælpen.
Avatar billede solle Nybegynder
19. maj 2008 - 23:13 #8
oki!
Avatar billede keysersoze Guru
20. maj 2008 - 07:24 #9
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester