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

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

10 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