Avatar billede tvilling53 Seniormester
07. januar 2019 - 16:45 Der er 7 kommentarer og
1 løsning

Indsætte og skifte et billede på en <button>

Hej jeg har forsøgt at indsætte et billede på en <button1> med den viden jeg har, men har ikke fundet " de vise sten " så jeg håber at der er nogen der kan hjælpe mig.
Her er lidt kode:

    <script src="javascript_testside.js"></script>
Den næste linie viser billederne på siden.
    <IMG SRC = 'tilbage-icon.png'><IMG SRC = 'menu-icon.png'>
<button class="icon" id="button1" onclick="skift_tegn()" ></button>

På javascript_testside.js findes følgende:

var img = new Array();
img[0]='menu-icon.png';
img[1]='tilbage-icon.png';

menu_icon=newImage();
menu_icon.src="menu-icon.png";
tilbage_icon=newImage();
tilbage_icon.src="tilbage-icon.png";

Det er meningen med denne function at den skal finde ud af hvad den viser og derefter skifte til den modsatte.

function skift_tegn()
{  var vaerdi=document.getElementById('button1').innerHTML;
    if(vaerdi=='????')
    {  document.getElementById('button1').innerHTML='????????';
    } 
    else
    {  document.getElementById('button1').innerHTML='????????';
     
    }
}
Håber at nogen kan hjælpe mig.
Tvilling53
Avatar billede Slater Ekspert
07. januar 2019 - 17:38 #1
Er billederne inde i knappen? Du forsøger at bruge innerHTML, hvilket kun giver dig hvad der i knappen, men i din HTML ligger de uden for. Jeg skal lige forstå det korrekt.

Og jeg går ud fra at "newImage" bør være "new Image"? Eller er det en funktion vi ikke ser? Hvorfor preloader du overhovedet billederne med Javascript, hvis begge billeder bliver udskrevet med HTML?
Avatar billede tvilling53 Seniormester
07. januar 2019 - 18:12 #2
Hej
Billeder er lavet i paint og er samme sted som koden og er at se uden for knappen,hvilket var for at teste om billederne overhovedet var der. men meningen er at jeg gerne vil at de vises inde i knappen.
"newImage" skal være "new Image". Udformningen på array og new Image er hentet fra gamle IDG-hæfter udgivet i 2002.
Jeg er helt ny i forhold til java script så jeg har nok misforstået hvordan det skal bruges. Håber at er afklaring nok.
Tvilling53
Avatar billede Slater Ekspert
07. januar 2019 - 18:33 #3
Okay, så billederne er inde i knappen, som f.eks.

<button>
    <img src="blabla.jpg">
</button>

?

Det kan lade sig gøre på begge måder, men det ændrer lidt på hvordan det gøres.

Jeg vil dog anbefale at styre selve visningen med CSS i stedet for Javascript. Det er pænere og nemmere at vedligeholde og udvide. I så fald kan det gøres med så lidt kode som dette:

https://jsfiddle.net/bm7nt0x1/
Avatar billede tvilling53 Seniormester
07. januar 2019 - 19:08 #4
Hej
Så skiftes billederne og det er rigtig fint, men hvor indsættes de funktioner som skulle udføres efter at billederne er skiftet??
<button class="button1" onclick="this.classList.toggle('selected')">

Tvilling53
Avatar billede Slater Ekspert
07. januar 2019 - 20:16 #5
Hvad er det der skal udføres?
Avatar billede tvilling53 Seniormester
08. januar 2019 - 09:37 #6
Hej
Jeg skulle have en menu til at komme frem og lægge sig oven på de <div> der er der og ved næste klik at forsvinde igen.
Jeg har fået et kald til en funktion indsat og funktionen blive kaldt, men mangler at få en parameter med som som en IF() kan udføres.

this.classList.toggle('selected',test_function(?????)

function test_function(???)
            { 
            if(???===???)
            {  noget kode}
            else
            {  noget andet kode }

eller er der en anden måde som jeg ikke ved noget om??
Tvilling53
Avatar billede Slater Ekspert
08. januar 2019 - 10:29 #7
Men en menu der skal vises kan muligvis gøres med CSS også, an på hvordan den ligger. F.eks. sådan:
https://jsfiddle.net/bm7nt0x1/1/

Men ikke alt kan gøres med CSS, og hvis du har brug for det, kan du også i det eksempel tjekke med:

<button class="button1" onclick="this.classList.toggle('selected'); anden_funktion(this);">Klik</button>

<script>
function anden_function(caller) {
    if (caller.classList.contains('selected')) {
        // ...
    }
}
</script>
Avatar billede tvilling53 Seniormester
08. januar 2019 - 11:02 #8
Mange tak for hjælpen, nu har jeg lidt at "lege" med
Tvilling53
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

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