Kai345: onclick Event Handler

Beitrag lesen

[latex]Mae  govannen![/latex]

<table>

<tr id="test" onclick="alert(this.id + ' - ' + this.getElementsByTagName('a').length)"><td><p>blub</p></td></tr>
<tr id="test" onclick="alert(this.id + ' - ' + this.getElementsByTagName('a').length)"><td><a>blub</a></td></tr>
</table>


>   
> in o.g. Beispielen ist jeweils "this" das aufrufende Element. Sowohl beim div, dem nach onload das onclick zugewiesen wird, wie auch das alert direkt im Quelltext.  
  
`this`{:.language-javascript} ist hier \_immer\_ das Element, an das die Eventverarbeitung angehängt wurde, nicht das Element, das tatsächlich geklickt wurde. Wenn du im obigen Beispiel this.id durch this.nodeName ersetzt, wirst du immer tr erhalten, egal, ob du in die Zelle td, den Absatz p oder den Anker a klickst. Um das zu unterscheiden, muß das eigentliche Element über die target bzw. sourceElement-Eigenschaft des Eventobjektes ermittelt werden.  
  
Cü,  
  
Kai

-- 
„It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes, it's dark, and we're wearing sunglasses“.  
„Hit it!“  
[Selfzeugs](http://kaichen.in/selfhtml/)  
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?