🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.javascript
5 messages
5 total messages Started by Stefan Mayer Sun, 24 Nov 2019 14:01
Ereignis selbst auslösen. "new Event()" notwendig?
#180138
Author: Stefan Mayer
Date: Sun, 24 Nov 2019 14:01
50 lines
1175 bytes
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

Re: Ereignis selbst auslösen. "new Event()" notwendig?
#180423
Author: Stefan Mayer
Date: Mon, 25 Nov 2019 10:55
32 lines
781 bytes
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



Re: Ereignis selbst auslösen. "new Event()" notwendig?
#180413
Author: Stefan Reuther
Date: Mon, 25 Nov 2019 18:29
13 lines
475 bytes
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
Re: Ereignis selbst auslösen. "new Event()" notwendig?
#180158
Author: ram@zedat.fu-ber
Date: Wed, 23 Dec 2020 15:41
7 lines
222 bytes
Stefan Mayer <meniskus@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()

Re: Ereignis selbst auslösen. "new Event()" notwendig?
#180159
Author: Stefan Mayer
Date: Tue, 29 Dec 2020 12:55
16 lines
439 bytes
Stefan Ram:

> Stefan Mayer <meniskus@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 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads