Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ereignis selbst auslösen. "new Event()" notwendig?

9 views
Skip to first unread message

Stefan Mayer

unread,
Nov 24, 2019, 8:01:14 AM11/24/19
to
Hallo Leute

Grade versuche ich selbst das Ereignis "change" auf eine checkbox
anzuwenden, da sind mir ein paar Fragen eingefallen.

Folgender Aufbau:

```
<input id=checkbox type=checkbox name=test value=test>
```

```
const checkbox = document.getElementById('checkbox');
checkbox.addEventListener('change', e => {
if (checkbox.checked) {
// ausgewählt
} else {
// nicht ausgewählt
}
});
```

Ist die Prüfung auf "checkbox.checked" i.O. oder sollte man hier auf
"e.target.checked" prüfen?

Ist "checkbox.checked" === "e.target.checked"?
Bzw. "checkbox.checked" ==
"e.target.checked"?


Wenn nun eine Bedingung erfüllt ist, möchte ich die checkbox selbst
markieren und das Ereignis "change" auslösen, damit der EventListener
informiert wird.

```
if (Bedingung) {
checkbox.checked = true;
checkbox.dispatchEvent(new Event('change'));
}
```

- Muss "Event" tatsächlich selbst erzeugt werden?
- Hat "checkbox" nicht eine Methode die das erledigt (check > dispatch)?
- Warum löst "checkbox.checked = true" das Ereignis nicht aus?


Danke und schönen Sonntag noch.
ciao, Stefan


Stefan Mayer

unread,
Nov 25, 2019, 4:55:17 AM11/25/19
to
Stefan Mayer am Sonntag, 24. November 2019 (14:01):

> ```
> const checkbox = document.getElementById('checkbox');
> checkbox.addEventListener('change', e => {
> if (checkbox.checked) {
> // ausgewählt
> } else {
> // nicht ausgewählt
> }
> });
> ```

> Ist die Prüfung auf "checkbox.checked" i.O. oder sollte man hier auf
> "e.target.checked" prüfen?

> Ist "checkbox.checked" === "e.target.checked"?
> Bzw. "checkbox.checked" == "e.target.checked"?

Überflüssige Frage, einfach probieren?

console.log(checkbox == e.target) // true
console.log(checkbox === e.target) // true

Neue Frage: Ist e.target eine Referenz auf checkbox oder eine Kopie zum Zeitpunkt des
Ereignisses? Ich find's raus.

ciao, Stefan




Stefan Reuther

unread,
Nov 25, 2019, 12:32:58 PM11/25/19
to
Am 25.11.2019 um 10:55 schrieb Stefan Mayer:
> Stefan Mayer am Sonntag, 24. November 2019 (14:01):
>> const checkbox = document.getElementById('checkbox');
>> checkbox.addEventListener('change', e => {
>> if (checkbox.checked) {
[...]
> Neue Frage: Ist e.target eine Referenz auf checkbox oder eine Kopie zum Zeitpunkt des
> Ereignisses? Ich find's raus.

Das ist ein DOM-Knoten mit ein paar Fantastilliarden Attributen, der
wird nicht mal eben ohne Not kopiert.


Stefan

Stefan Mayer

unread,
Dec 29, 2020, 6:55:41 AM12/29/20
to
Stefan Ram:

> Stefan Mayer <meni...@gmx.net> writes:
> >Wenn nun eine Bedingung erfüllt ist, möchte ich die checkbox selbst
> >markieren und das Ereignis "change" auslösen, damit der EventListener
> >informiert wird.
>
> checkbox.click()

Danke. So hatte ich es dann auch notiert. Es war mir zuerst nicht ganz
klar, dass der EventListener auf "change" auch beim Event "click"
nichts Falsches ist.

ciao, Stefan

0 new messages