Avatar billede maskso Nybegynder
05. januar 2011 - 12:51 Der er 4 kommentarer og
1 løsning

Skift td baggrund ved checkbox onclick

Hej

Jeg vil gerne skifte td baggrund ved checkbox onclick. Det jeg har fået strikket sammen, virker også fint, men kan én gang. Jeg kan skifte baggrundsbilledet og skifte det tilbage igen, men så kan jeg ikke skifte det mere. Jeg vil gerne ha' at man kan skifte frem og tilbage lige så mange gange man har lyst til.

Scriptet:

  function changeTableImage(){var imgPath = new String();
  imgPath = document.getElementById("tab2").style.backgroundImage;

  if(imgPath == "url(images/paperline.png" || imgPath == ""){
  document.getElementById("tab2").style.backgroundImage = "url
(images/paperline2.png)";}

  else{document.getElementById("tab2").style.backgroundImage = "url(images/paperline.png)";}
  }




Html'en:

              <tr>
      <td id="tab2" align="center" valign="bottom" height="43" background="images/paperline.png">
     
      <table width="302" border="0"><tr>
      <td width="10" align="left">
   
      </td>
      <td width="280" align="left" valign="bottom">
      Mælk
      </td><td width="10" align="right" valign="middle">
      <input name="0000000001" align="right" type="checkbox" onclick="changeTableImage()" />
      </td></tr></table>
     
      </td>
     
            </tr>


Måske er der en lettere måde at gøre det på. Der skal laves 100 celler jeg vil gerne undgå at lave 100 functions.

Jeg håber der er en der kan hjælpe, da jeg ikke er den store javascripthaj :-)
Avatar billede intenz Novice
05. januar 2011 - 12:55 #1
Skal alle cellerne skifte hver gang? Eller vil du kunne vælge hvilke der skal skifte? (er der mere end en checkbox).
Avatar billede maskso Nybegynder
05. januar 2011 - 13:06 #2
Der er 100 checkboxe, i hver sin celler, når man klikker på en af checkboxene, skal den celle den befinder sig i, skifte baggrund.
Avatar billede intenz Novice
05. januar 2011 - 13:38 #3
Okay. Du har en lidt mystisk struktur (tabel inde i en td), så det bliver på den nemme måde, men med lidt mere manuelt arbejde.

Hvad TD der skal skifte farve skal have et unikt id (som du har tab2 nu, så lav tab3, tab4 mv.)

Du skal så kalde dem med:
<input name="0000000001" align="right" type="checkbox" onclick="changeTableImage(this, 'tab2')" />

og så skifte tab2, til den TD der skal skifte.

Og bruge denne funktion (ikke testet):
function changeTableImage(e, id){
  var td = document.getElementById(id);
  if (typeof td !== undefined) {
    if (e.checked) {
      td.style.backgroundImage = "url(images/paperline2.png)";
    } else {
      td.style.backgroundImage = "url(images/paperline.png)";
    }
  }
}
Avatar billede maskso Nybegynder
05. januar 2011 - 13:49 #4
Mange tak for hjælpen. Det virker som det skal :-)

Og ja, jeg har det med at bruge mange tables og ofte tables i tables. Jeg ved godt det er lidt gammeldags men old habits die hard :-)
Avatar billede intenz Novice
05. januar 2011 - 21:52 #5
Det var så lidt :)
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