Avatar billede webhelpers Praktikant
26. juli 2005 - 03:05 Der er 8 kommentarer og
1 løsning

skift ved klik

Hej

Har følgende script, som jeg ikke kan få til at virke korrekt. Den skifter korrekt billede når jeg klikker første gang, men anden gang skifter den ikke tilbage...Håber I kan hjælpe

var showing = false;

function skift() {
    if (showing) {
        document.knap.src = "/pic/graphic/icon_message_folder.gif";
        showing = false;
    }
    if (!showing) {
        document.knap.src = "/pic/graphic/icon_message_folder_read.gif";
        showing = true;
    }
}

Og grafikken/linket man klikker på:

<A HREF="#" onclick="toggleView('inbox');skift();" title="inbox"><img src=/pic/graphic/mfolder_closed.gif width=9 height=9 border=0></a>

Og billedet som skal skifte ved klik:

<img NAME=knap src="/pic/graphic/icon_message_folder.gif" border="0">
Avatar billede roenving Novice
26. juli 2005 - 03:10 #1
Er det en del af en menu-ting, så der er mange af dem ?-)
Avatar billede softspot Forsker
26. juli 2005 - 08:06 #2
Umiddelbart ser det ud til at den sidste if ophæver den første. Så du skal nok bruge denne form i stedet:

function skift() {
    if (showing) {
        document.knap.src = "/pic/graphic/icon_message_folder.gif";
        showing = false;
    }
    else {
        document.knap.src = "/pic/graphic/icon_message_folder_read.gif";
        showing = true;
    }
}
Avatar billede nielle Nybegynder
26. juli 2005 - 08:17 #3
... som softspots, men i en mere kompakt version:

function skift()
{
    if (showing)
        document.knap.src = "/pic/graphic/icon_message_folder.gif";
    else
        document.knap.src = "/pic/graphic/icon_message_folder_read.gif";   

    showing = !showing;
}
Avatar billede webhelpers Praktikant
26. juli 2005 - 11:48 #4
->Softspot
Det virker! Skriver du lige svar.

->Nielle
Det virkede ikke helt. skifter rigtigt ved første og andet klik, men herefter stilhed....:-)
Avatar billede softspot Forsker
26. juli 2005 - 11:55 #5
Det kom der :)

I øvrigt spøjst at nielle's eksempel ikke fungerer... det burde fungere :/
Avatar billede nielle Nybegynder
26. juli 2005 - 12:44 #6
Måske skal showing bare initialiseres fra starten af:

var showing = true;
function skift()
{
    if (showing)
        document.knap.src = "/pic/graphic/icon_message_folder.gif";
    else
        document.knap.src = "/pic/graphic/icon_message_folder_read.gif";   

    showing = !showing;
}
Avatar billede softspot Forsker
26. juli 2005 - 12:53 #7
det var den også i det oprindelige kode (i spørgsmålet), så jeg antog at den stadig var det, men det kan være numsi har fjernet den initialiering...?
Avatar billede webhelpers Praktikant
26. juli 2005 - 12:58 #8
Nielle, du har ret, det virker egentlig. Min fejl. Jeg fik nemlig til at starte med en fejl, og så satte jeg {} om selektionen:

function skift()
{
    if (showing) {
        document.knap.src = "/pic/graphic/icon_message_folder.gif";
    }
    else {
        document.knap.src = "/pic/graphic/icon_message_folder_read.gif";   

    showing = !showing;
    }
}

Og så virkede det ikke. Men når jeg tester dit forslag nu - denne gang uden brackets :-) - virker det fint. Sorry.
Avatar billede nielle Nybegynder
26. juli 2005 - 14:21 #9
Cool, rart med en gåde mindre. :^)
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