Avatar billede Tony Juniormester
10. august 2001 - 09:47 Der er 5 kommentarer og
1 løsning

Funktion .... hideImages() - hvordan ?

Jeg ønsker med en onClick funk. at skjule (måske visibility=hide) specificerede billeder (img1.jpg, img2.jpg, img3.gif ...) i et åbent dokument.

Har du et forslag til hvordan den kan se ud ?

/Tony
Avatar billede jakoba Nybegynder
10. august 2001 - 10:22 #1
det nemmeste er vel at lave et billedskift der skifter dem ud med \"transparent.gif\".

var imgs = \"img1.jpg,img2.jpg,img3.gif\"; // billeder der skal gemmes.

function gemDem ( imgList ) { // gem nogle billeder.
    var bi = document.images;
    for (var i=0; bi.length>i; i++ ) {
        var bis = bi[i].src.split(\"?\");
        if ( bis.length >= 1 ) {
            bis = bis[0].substring( bis.lastIndexOf(\"/\")+1 ); // filnavnet
            var j = imgList.indexOf( bis );
            if ( j >= 0 ) {      // er filnavnet på listen?
                bi[i].gammel = \"\"+bi[i].src;  // gem gammel url
                bi[i].src = \'gennemsigtig.gif\';
            }
        }
    }
}; //end gemDem

function visDem ( imgList ) { // vis billeder der tidligere er blevet gemt
    var bi = document.images;
    for (var i=0; bi.length>i; i++ ) {
      if ( bi[i].gammel ) {
        var bis = bi[i].gammel.split(\"?\");
        if ( bis.length >= 1 ) {
            bis = bis[0].substring( bis.lastIndexOf(\"/\")+1 ); // filnavnet
            var j = imgList.indexOf( bis );
            if ( j >= 0 ) {      // er filnavnet på listen?
                bi[i].src = \"\"+bi[i].gammel;  // restore gammel url
                bi[i].gammel = \"\";
            }
        }
      }
    }
}; //end visDem

// kaldes med

gemDem( imgs );

// senere kan du så kalde:

visDem( \"img2.jpg,img3.gif\" );
visDem( \"img1.jpg,img2.jpg\" );

Det gør ikke noget hvis et navn gemmes (eller vises) 2 gange. fejl-parametre bliver blot ignoreret.

mvh JakobA
Avatar billede Tony Juniormester
10. august 2001 - 12:00 #2
Undskyld den langsomme feedback - Stofanet har været nede igen.

Jeg får en:
\"Fejl linie 14 tegn 13. Objektet understøtter ikke denne metode eller egenskab\".
På:
function gemDem ( imgList ) { // gem nogle billeder.
    var bi = document.images;
    for (var i=0; bi.length>i; i++ ) {
        var bis = bi[i].src.split(\"?\");
        if ( bis.length >= 1 ) {
            bis = bis[0].substring( bis.lastIndexOf(\"/\")+1 ); // filnavnet
            var j = imgList.indexOf( bis );
            if ( j >= 0 ) {      // er filnavnet på listen?
                bi[i].gammel = \"\"+bi[i].src;  // gem gammel url
                bi[i].src = \'gennemsigtig.gif\';
            }
        }
    }
}; //end gemDem

Dreamweaver siger at følgende er linie 14:
bis = bis[0].substring( bis.lastIndexOf(\"/\")+1 ); // filnavnet
... og at b\'et i \"bis\" ligger i \'tegn 13\'

/Tony
Avatar billede roenving Novice
10. august 2001 - 14:02 #3
>>jakoba

der skal vel ikke index på textvariablen ?

>>tony

prøv at fjerne [0], hvor du får fejlen
Avatar billede Tony Juniormester
10. august 2001 - 14:11 #4
> roenving

Nej desværre, det hjælper ikke.

Men måske der er en anden vej rundt. Billederne indgår i en funktion \'setValues()\' der bliver kaldt af \'onLoad\'. Der vil ikke være noget til hinder for at stoppe / disable / terminerer  funktionen med en \'onClick\'. ... har prøvet, men ka\' ik\' få\'et te\' at virk\' ...

/Tony
Avatar billede jakoba Nybegynder
10. august 2001 - 18:26 #5
Ups. Der var et par fejl :(
jeg har rettet og lagt ud på:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp97045.html
til demonstration.

mvh JakobA
Avatar billede Tony Juniormester
10. august 2001 - 20:43 #6
Lige i øjet JakobA :)

Tak - Tony
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