JS Button onclick Farbe ändern?

1 Antwort

So:

<button onclick="this.style.backgroundColor='green'" type="button">Change color</button>

Oder so:

<button id="colorButton" type="button">Change color</button>
<script>
  document.getElementById("colorButton").addEventListener("click", function() {
    this.classList.add("green");
  });
</script>

CSS:

.green { background-color: green }

Die zweite Option halte ich für eleganter, da sie es erlaubt, HTML, Logik und Styling voneinander zu trennen.

xxlolxx283 
Fragesteller
 29.09.2020, 20:20

Wenn dort 2 Buttons sind und einer schon durch klick die Farbe geändert hat und jetzt wird auf den anderen standart Button gedrückt, um die Farbe zu ändern.

Wie kann ich es hinbekommen, das dann der andere Button wieder normal wird? Also einer darf immer nur die Farbe verändert haben.

0
regex9  29.09.2020, 20:27
@xxlolxx283

Entferne die Klasse von dem Button, der nicht mehr aktiviert sein soll, wieder.

this.classList.remove("green");
0
xxlolxx283 
Fragesteller
 29.09.2020, 20:33
@regex9

So?

<button id="colorButton" type="button">Change color</button>
<br>
<button id="colorButton1" type="button">Change color</button>
<script>
 document.getElementById("colorButton").addEventListener("click", function() {
   this.classList.add("green");
   this.classList.remove("green");
 });

 document.getElementById("colorButton1").addEventListener("click", function() {
   this.classList.add("green");
   this.classList.remove("green");
 });

</script>

<style>
.green { background-color: green }
</style>
0