Avatar billede neoman Novice
14. august 2007 - 18:15 Der er 14 kommentarer og
2 løsninger

Skjule image ved klik

har en image
                <img id="imgStatus"  alt=""/>

src bliver givet ved tryk på en knap, og virker fint:
function SetImage2(myImage)
{
    if (myImage !="")
        {
        document.getElementById("imgStatus").setAttribute("src",myImage);
        }

}

Nu prøver jeg samtidigt at gøre img usynligt vhja :
        document.getElementById("imgStatus").style="display:none";
eller
      document.getElementById("imgStatus").setAttribute("style","display:none;");

men uden vider held.

Hvad gør jeg forkert ?
Avatar billede erikjacobsen Ekspert
14. august 2007 - 18:19 #1
document.getElementById("imgStatus").style.display="none";
Avatar billede neoman Novice
14. august 2007 - 18:24 #2
Bingo ! takker.

I øvrigt - er det den korrekte måde at gøre det på ? Uden brug af setAttribute ?

Jeg vil gerne give dig points hvis du skulle have skiftet standpunkt vedr. den sag:)
Avatar billede erikjacobsen Ekspert
14. august 2007 - 19:22 #3
Det er en diskussion du skal tage med Olebole, en dag. Ingen point til mig, tak.
Avatar billede w13 Novice
14. august 2007 - 20:10 #4
Så vidt jeg ved, kan du ikke sætte en "style.noget"-attribut. style.setAttribute holder ikke, da ting inde i style="" jo ikke rigtig er attributter. Derfor må det laves på den måde.
Jeg er bestemt ikke en ekspert på området, men det er det indtryk, jeg har fået.
Avatar billede w13 Novice
14. august 2007 - 20:10 #5
Det blev lidt mærkeligt. Prøver igen:

Så vidt jeg ved, kan du ikke sætte en "style.noget"-attribut med style.setAttribute. Det holder ikke, da ting inde i style="" jo ikke rigtig er attributter. Derfor må det laves på den måde.
Avatar billede kalp Novice
14. august 2007 - 20:26 #6
src er hvis man vil ændre billedet til noget andet... du kan selv prøve
.setAttribute('src','');

her vil du se, at den søger efter billedet '' som jo ikke findes.

så jeg ville nok også gøre, som foreslået af erikjacobsen.
Avatar billede neoman Novice
14. august 2007 - 20:32 #7
w13 : Jeg forventede, at style er en gemen attribut, blot med en hulens lang værdi:) og derfor blev overrasket over at
      document.getElementById("imgStatus").setAttribute("style","display:none;");
ikke virkede.

kalp : jeg har ingen problemer med src
document.getElementById("imgStatus").setAttribute("src",myImage);
virker fint.

Jeg mener at ha' læst et eller andet sted at setAttribute var den "rigtige" måde at gøre det på, deraf mine spæde forsøg. Må tydeligvis ha overset noget:)
Avatar billede w13 Novice
14. august 2007 - 20:37 #8
Du har også helt ret. setAttribute, getAttribute (og vel egentlig også createAttribute, hvis der ikke allerede er nogen, og removeAttribute, hvis den skal være blank, men det bruger jeg sjældent selv) er de rigtigste måder at gøre det på. Dog holder det ikke ved style. Du kan i øvrigt heller ikke hente value fra et tekstfelt med getAttribute("value"), da du så kun får værdien, som stod der, da siden blev indlæst. Dvs. den værdi, der står i HTML-koden, og ikke den værdi, brugeren har indtastet. Derfor må du der ty til .value
Avatar billede w13 Novice
14. august 2007 - 20:39 #9
Nå ja, og style er at foretrække fremfor at bare at ændre className og id, da det ofte resulterer i, at alle klasser skal indlæses igen, så vidt jeg har forstået.
Avatar billede kalp Novice
14. august 2007 - 20:41 #10
neoman >> okay:) men så er spørgsmålet om det måske skal være denne du skal bruge:)

document.getElementById("imgStatus").style.visibility = 'hidden';
Avatar billede w13 Novice
14. august 2007 - 20:43 #11
kalp>> min personlige erfaring er, at visibility="hidden" efterlader en tom plads, hvor elementet gemmer sig, hvorimod display="none" skjuler det fuldstændig.
Avatar billede kalp Novice
14. august 2007 - 20:47 #12
w13 >> ahh okay.. men det er praktisk nok hvis man ikke vil have designet skal rykke sig:) men det kommer selvfølgelig kan på hvor og hvordan det skal bruges
Avatar billede neoman Novice
14. august 2007 - 21:12 #13
tada . kalp har en pointe med "rykke" , jeg var ellers ligee i gang med at lave en gennemsigtig gif for at undgå ryk, hehe, men prøver lige med visibility:)

Det med at ændre klasse har jeg læst et andet sted er i pincippet en dårlig ide, fordi hele displayet skal genberegnes, når klassen på noget som helst ændres. Om dette så er en stor katastrofe, i de tider hvor vi alle har mere cpu-power på skrivebordet end Apollo-13 og formentligt også space shuttlen, skal jeg ikke kunne udtale mig om:)

Hvis kalp og w13 gider lægge et svar så får I points, da jeg igen har lært noget.
Avatar billede kalp Novice
14. august 2007 - 21:57 #14
:D
Avatar billede w13 Novice
15. august 2007 - 02:24 #15
=)
Avatar billede neoman Novice
15. august 2007 - 02:41 #16
Godnat folks:)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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