Gernot Back: angeklicktes Unterelement aus <li onclick=xyz bestimmen

Beitrag lesen

Hallo Felix,

aber dein eigentliches Problem des "Filterns" könntest du doch mit cancelBubble resp. stopPropagation geknüpft an ein Unter-Element des LI-Elements trotzem lösen.
Dieses verstehe ich nicht. Wie verwende ich das? cancelBubble und stopPropagation kommen in der SelfHTML-Doku nicht vor...

In meiner init-Funktion sind dies die entscheidenden Zeilen:

  
   lks = (document.all) ? document.all.tree.all.tags("A") :  
           document.getElementById('tree').getElementsByTagName("A");  
   for (i=0; i<lks.length; i++ ) {  
     lks[i].onclick=stp;  
   }  

Das kannst du bestimmt auch serverseitig regeln, wenns das schneller macht, dann brauchst du auch keine Unterscheidung von document.all bzw document.getElementsByTagName, die bei clientseitigen Ansätzen das Ganze für Opera deutlich beschleunigt, denn dann schreibst du ja wahrscheinlich den Eventhandler sowieso direkt als Attribut in jedes Link-Element.

Die stp-Funktion, die das Weiterreichen des Events an Elternelemente verhindert, ist diese hier:

  
function stp (e) {  
  if(e) {  
    e.stopPropagation();  
  } else {  
    window.event.cancelBubble = true;  
  }  
}  

Gruß Gernot