Button färben nach dem Click?

1 Antwort

Viele Wege führen dahin. Einer wäre der hier:

Live: https://jsfiddle.net/j5m68x9o/

HTML

<button class="button">Button 1</button>
<button class="button">Button 2</button>
<button class="button">Button 3</button>

CSS

.button {
 padding: 4px 8px;
 border: 2px solid black;
 border-radius: 5px;
 background-color: white;
}

.button.active {
 border-color: red;
 background-color: yellow;
}

Javascript

document.querySelectorAll(".button").forEach((el) => {
  el.addEventListener("click", () => {
    el.classList.toggle("active");
  });
});
Woher ich das weiß:Berufserfahrung – Entwickle Webseiten seit über 25 Jahren.
Lukas665 
Fragesteller
 11.07.2021, 19:19

Geht das denn auch, wenn man zum Beispiel Buttons mit gleiche name Tag hat, dass diese dann nach dem klick des anderen ihre vorherige Färbung wieder haben. Hoffe du verstehst was ich meine haha

0
Babelfish  11.07.2021, 19:25
@Lukas665

Ja, das geht natürlich auch:

https://jsfiddle.net/vmgz14cx/

document.querySelectorAll(".button").forEach((el) => {
  el.addEventListener("click", () => {
    resetButtons();
    activateButton(el);
  });
});

const activateButton = (el) => {
  el.classList.add("active");
};

const resetButtons = () => {
  document.querySelectorAll(".button").forEach((el) => {
    el.classList.remove("active");
  });
};

Und daraus solltest du es schaffen was eigenes zu machen. ;-)

0
Lukas665 
Fragesteller
 11.07.2021, 20:13
@Babelfish

Sorry, wenn ich dich jetzt etwas nerve, aber ich meinte, dass z.B es mehrere Reihen von Buttons gibt. Also z.B drei nebeneinander. Innerhlab den Reihen, soll dann jeweils immer die Farbe geändert werden und der Button davor wieder in seinen Normalzustand zurückkehren. :)

0
Babelfish  11.07.2021, 20:47
@Lukas665

Dann änderst du das halt entsprechend ab und machst für jede Reihe eine extra Klasse, wie bspw. .button1 und .button2

0
Lukas665 
Fragesteller
 11.07.2021, 21:17
@Babelfish

Ok ich probiere das mal aus. Danke für deine Hilfe! :)

0