Felix Riesterer: Vanilla – best practice gesucht

Beitrag lesen

Lieber Matthias,

inzwischen unterstützen alle aktuellen Browser event.target, so dass Du nicht mehr für den IE nach event.srcElement suchen musst.

let do_A = function (event) {
  let target = event.target; // event.target || event.srcElement für legacy IE
  // ...
}

let do_b = function (event) {
  let target = event.target;
  // ...
  do_A(event);
}

Den Eventhandler kann man in Vanilla wie üblich mit addEventListener binden:

$('form').on('click', '.foo', do_B);
// JQuerys 'click' lauscht auch auf Tastatur und Touch
$('form').change(do_A);

Quick & dirty:

document.querySelectorAll("form").forEach(function (f) {

  f.querySelectorAll(".foo").forEach(function (n) {
    n.addEventListener("click", do_B);
  });

  f.addEventListener("change", do_A);
});

Je nach Alter des Browsers kann es sein, dass die von querySelectorAll zurückgegebene Liste kein forEach unterstützt. Da musst Du das Ergebnis erst in ein echtes Array umwandeln, bevor Du mit forEach iterierst.

Liebe Grüße

Felix Riesterer