Felix Riesterer: Vanilla – best practice gesucht

Beitrag lesen

Lieber Matthias,

Würden dynamisch hinzukommende Buttons der Klasse foo auch die Funktion B auslösen?

nein. Die Verteilung der Eventlistener geschieht ja nur einmal. Wenn du aber dynamisch erzeugte später hinzugefügte Buttons unterstützen musst, dann musst Du das Event am <body> verankern:

document.body.addEventListener("click", function (event) {

  let target = event.target || event.srcElement;

  if (target.className.match(/\.foo\b/)) {
    do_B(event);
  }
});

document.body.addEventListener("change", function (event) {

  let target = event.target || event.srcElement;

  if (target.className.match(/\.foo\b/)) {
    do_A(event);
  }
});

Ich habe keine Ahnung, ob IE11 classList unterstützt, daher habe ich eine RegExp verwendet.

Liebe Grüße

Felix Riesterer