Linuchs: Click-Event auswerten (stopPropagation)

Beitrag lesen

Moin,

das Thema hattenn wir schon mal. Ich klicke auf ein Objekt (z.B. Adressliste <tr>), um dessen Hintergrund-Farbe zu wechseln. So kann ich in Listen die bearbeiteten Positionen markieren. Dann klicke ich auf einen Link innerhalb dieses Objekts, um zum Bearbeitungsformular (z.B. Adresse) zu kommen.

Nun führt jedoch der Klick auf den Link dazu, dass das selbe Click-Event zum Parent weitergereicht wird. Das soll aber nicht passieren, deshalb mache ich es z.Z. so:

window.addEventListener('DOMContentLoaded', function ( ) {
  // tbody tr Tabellenzeilen per Klick einfaerben ...
  var obj_tbody = document.getElementsByTagName( "tbody" );
  for ( var i=0; i<obj_tbody.length; i++ ) {
    var obj_tr = obj_tbody[i].getElementsByTagName( "tr" );
    for ( var j=0; j<obj_tr.length; j++ ) {
      obj_tr[j].addEventListener('click',  function () { switchMarkierung(this); });
    }
  }
  // ... auch Positionen per Klick einfaerben (muessen nicht tr sein )
  obj = document.getElementsByClassName( "position" );
  for ( i=0; i<obj.length; i++ ) {
    obj[i].addEventListener('click',  function () {
      switchMarkierung(this);
    });
  }
  // Klick auf <a ... nicht wieterreichen
  obj = document.getElementsByTagName( "a" );
  for ( i=0; i<obj.length; i++ ) {
    obj[i].addEventListener('click', function (event) {
      event.stopPropagation();
    });
  }
  // Klick auf <input ... nicht wieterreichen
  obj = document.getElementsByTagName( "input" );
  for ( i=0; i<obj.length; i++ ) {
    obj[i].addEventListener('click', function (event) {
      event.stopPropagation();
    });
  }
});

Das Dumme ist nun, dass es weitere klickbare Objekte gibt, die ich in der Stop-Liste "vergessen" habe, etwa <textarea>.

Ich möchte es umgekehrt machen. Die mit dem EventListener click versehenen Objekte sollen selbst prüfen, ob sie mit dem Klick gemeint sind. Es gab Hinweise von Orlok, dass das gehen soll. Habe aber nicht verstanden, wie das umzusetzen ist.

Linuchs