Avatar billede simseboii Nybegynder
21. juni 2007 - 16:39 Der er 9 kommentarer og
1 løsning

Checked radio

Hej.
Jeg har lavet et script, som markerer en radio-knap når man trykker på et billede. Dette virker fint i FireFox, men ikke i Internet Explorer.
Er der nogen, der kan fortælle mig hvorfor?
Her er min kode:

function hold(valg)
{
    if(valg == "helte")
    {
        alternativ = "skurke";
    }
    else if(valg == "skurke")
    {
        alternativ = "helte";
    }

    document.getElementById("valg" + valg).checked = true;
    document.getElementById("vis" + valg).innerHTML = "<img src=\"gfx/" + valg + ".gif\" alt=\"\" id=\"" + valg + "\" onClick=\"java script:hold(this.id);\" onMouseOver=\"this.style.cursor='pointer';\" />";
    document.getElementById("vis" + alternativ).innerHTML = "<img src=\"gfx/" + alternativ + "iv.gif\" alt=\"\" id=\"" + alternativ + "\" onClick=\"java script:hold(this.id);\" onMouseOver=\"this.style.cursor='pointer';\" />";
}

Her kan du se et eksempel:
http://snuzzer.dk/helteby/index.php?side=lavkarakter

- Simon
Avatar billede thesurfer Nybegynder
21. juni 2007 - 17:36 #1
Af en eller anden mystisk årsag, virker det ikke med funktionsnavnet "hold".. måske et reserveret ord?

Jeg erstattede "hold" med "dohold" (hvilket som helste ord, der ikker er "hold"), og så virkede det..

Prøv det lige.. :-)
Avatar billede thesurfer Nybegynder
21. juni 2007 - 17:37 #2
Med andre ord:
Erstat "hold(this.id)" med "dohold(this.id);"

PS: onclick er allerede JavaScript, så der er ingen grund til at indsætte "java script:" i onclick-eventen..

Derfor: onclick="noget kode her"
Avatar billede simseboii Nybegynder
21. juni 2007 - 17:54 #3
Hej.
Arh, selvfølgelig!
Mange tak for den hurtige hjælp.

Smid et svar :-)
Avatar billede thesurfer Nybegynder
21. juni 2007 - 18:34 #4
Ok :-)
Avatar billede thesurfer Nybegynder
21. juni 2007 - 18:59 #5
Jeg kan desværre ikke sige dig, hvorfor "hold" ikke virker..

"hold" er ikke i listen over reserverede ord:


Husk at rette "hold" til "dohold" i denne linie: http://javascript.about.com/library/blreserved.htm

    document.getElementById("vis" + valg).innerHTML = "<img src=\"gfx/" + valg + ".gif\" alt=\"\" id=\"" + valg + "\" onClick=\"java script:hold(this.id);\" onMouseOver=\"this.style.cursor='pointer';\" />";
Avatar billede thesurfer Nybegynder
21. juni 2007 - 18:59 #6
Rettelse :-)


Jeg kan desværre ikke sige dig, hvorfor "hold" ikke virker..

"hold" er ikke i listen over reserverede ord: http://javascript.about.com/library/blreserved.htm


Husk at rette "hold" til "dohold" i denne linie:

    document.getElementById("vis" + valg).innerHTML = "<img src=\"gfx/" + valg + ".gif\" alt=\"\" id=\"" + valg + "\" onClick=\"java script:hold(this.id);\" onMouseOver=\"this.style.cursor='pointer';\" />";
Avatar billede simseboii Nybegynder
21. juni 2007 - 19:13 #7
Hej.
Ja, det er lidt underligt, men så længe der er en løsning, så er det vel ikke et problem :-)
Avatar billede roenving Novice
22. juni 2007 - 02:32 #8
Jo, man bør altid løse problemerne fuldstændigt ("if it ain't broken, don't fix it" er kun for dem, der har råd til at tage chancen !-)

-- men derudover virker det helt skørt, at man skal ændre på noget innerHTML, når det bare er ændring af src-tingen på billedet ...

-- og at sætte en cursor onmouseover er lidt som at fortælle et spejl, at det skal reflektere dit billede, hvis du står foran det !o]

function dohold(valg){
    alternativ = valg == "helte" ? "skurke" :"helte";

    document.getElementById("valg" + valg).checked = true;
    document.getElementById(valg).setAttribute("src","gfx/" + valg + ".gif");
    document.getElementById(alternativ).setAttribute("src","gfx/" + alternativ + "iv.gif")
}
Avatar billede thesurfer Nybegynder
22. juni 2007 - 16:36 #9
roenving> Nogen forklaring på fejlen med "hold" som funktionsnavn?
Avatar billede roenving Novice
22. juni 2007 - 16:43 #10
Nix ...
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