Ale×: Prüfen ob außerhalb eines bestimmten Bereiches geklickt wurde

Beitrag lesen

Hallo,

ich möchte feststellen, ob außerhalb eines Elementes geklickt wurde. Das funktioniert soweit auch:

function mausklick(e)  
 {  
  var obj = e.target || e.srcElement;  
  if(obj.id!='kasten')  
   {  
    alert('Außerhalb des Kastens geklickt!');  
   }  
 }  
document.onmousedown = mausklick;

Das Problem ist nun: wenn in dem Kasten weitere Elemente vorkommen (<div>, <p>, <a> usw.) und auf diese geklickt wird, wird natürlich auch der alert ausgeführt.

Eine Möglichkeit wäre nun, nach dem parentNode und dessen parentNode usw. zu schauen, es können ja beliebig viele Verschachtelungen enthalten sein:

if(obj.id!='kasten' && obj.parentNode.id!='kasten' && obj.parentNode.parentNode.id!='kasten' && obj.parentNode.parentNode.parentNode.id!='kasten' && ... && ...)

Meine Frage ist nun, ob man das elegant und allgemeingültig formulieren kann ohne jede Ebene einzeln abzufragen.

Ale×