JS : mit onclick Farbe eines Elements ändern?


23.11.2022, 20:16

Bei Fragen einfach Nachfragen. Gebe auch meinen Discord Namen raus, dann kann ich das mündlich erklären

Babelfish  23.11.2022, 20:19

Bitte poste relevanten Code in deiner Frage und keine Screenshots.

white47583 
Fragesteller
 23.11.2022, 20:20

Dann musst du dir nur die Funktion load_array ansehen. Der Rest gehört zu was anderem

Babelfish  23.11.2022, 20:48

Ich sehe mir Quellcode gerne an. Screenshots sind aber kein Quellcode.

white47583 
Fragesteller
 23.11.2022, 21:07

Ich kann wenn ich morgen Zeit habe, denn Quelcode hier rein schicken

1 Antwort

Das event-Objekt beinhaltet Informationen darüber, welches Element angeklickt und an welches Element der Handler gebunden wurde.

someElement.addEventListener("click", evt => {
  const clickedElement = evt.target;
  const elementToWhichTheEventWasBound = evt.currentTarget;
  /* do something ... */
});

Zusätzlich könntest du deinen Elementen data-Attribute zuordnen, um sie zu identifizeren.

Beispiel:

<!doctype html>
<title>Example</title>
<ul>
  <li data-id="Leo">Lion
  <li data-id="Odie">Dog
  <li data-id="Gulliver">Crow
</ul>
<script>
  const items = document.querySelectorAll("[data-id]");

  for (const item of items) {
    item.addEventListener("click", evt => {
      console.log(evt.currentTarget.dataset.id);
    });
  }
</script>

white47583 
Fragesteller
 23.11.2022, 20:45

Dabei für deine Antwort, aber sie richtig beantwortet es nicht meine Frage. Weißt du wie es möglich wäre es konrekt mit dem Beispiel der Farbe umzusetzten. (Zur Data Id die Elemte bekommen jeweils, wie du aus dem Code entlesen kannst Klassen)

0
regex9  23.11.2022, 21:09
@white47583

Das obige Beispiel erweitert fügt dem angeklickten Element eine bestimmte Farbe zu.

<!-- ... -->
<style>
  .highlight { background-color: orange }
</style>
<!-- ... -->
<script>
  /* ... */

    item.addEventListener("click", evt => {
      const element = evt.currentTarget;
      element.classList.add("highlight");
      console.log(element.dataset.id);
    });
  }
</script>

Statt eine CSS-Klasse hinzuzufügen, kann man auch direkt über das style-Property Styles ändern.

element.style.backgroundColor = "orange";
0
white47583 
Fragesteller
 23.11.2022, 21:11
@regex9

Danke. Ich habe leider heute Abend keine Zeit mehr mir das genau anzusehen. Aber ich werde morgen nochmal alles probieren dieses Problem zu lösen unteranderem mit deinen sehr hilfreichen Antworten

0