pother_dane: Verweis um Grafik - wohin zeigt event.target?

Beitrag lesen

Hallo zusammen,

für den dämlichen Titel entschuldige ich mich zu Anfang, besser kann ich mein "Problem" nicht umschreiben.
Folgendes: um eine Reihe Grafiken sind Verweise gelegt. Mittels eventHandlern soll den Verweisen (nicht den Grafiken) ein Verhalten angedeiht werden. Klappt soweit ganz gut. Allein: lese ich in der den Event abfangenden Funktion id und className des angeklickten Verweises aus, gibt mir das Skript nicht id/className des Verweises aus, sondern die der eingeschlossenen Grafik. Dies geschieht in allen Browsern die ich hier zur Verfügung (FF3, Opera9, Konquerer4) habe gleich gut/schlecht (IEx kann ich hier nicht testen, schließe von der hohen Reproduktionsrate in den angegebenen Browsern darauf, dass auch der Murks (?) ausgeben wird). Und da frage ich mich: Wieso denn bloß? Steht in den Verweisen simpler Text bekomme ich was ich von dem Skript will; meine: id/className.

Zur Veranschaulichung, Code-Beispiel:

javascript:

  
test = {  
 addEvent : function (obj, key, func) {  
  for (var i=0, l=obj.length; i<l; i++) {  
    var tmp_elem = obj[i];  
    var is_key = tmp_elem.className.indexOf(key);  
    if (is_key == 0) {  
     tmp_elem.onclick = func;  
     }  
    else continue;  
    };  
    return true  
  },  
  
 init : function () {  
  window.onload = function () {  
   var links = document.getElementsByTagName("a");  
   var isAdded = test.addEvent(links, "link", test.say);  
   };  
  },  
  
 say : function (event) {  
  var ID = event.target.id;  
  var CL = event.target.className;  
  alert("ID: "+ID+"\nclassName: "+CL);  
 }  
};  
  
test.init();  

html:

  
<ul>  
<li><a href="#" class="link" id="ilink_1"><img src="bla.png" class="img" id="img_1"></a></li>  
<li><a href="#" class="link" id="ilink_2"><img src="bla.png" class="img" id="img_2"></a></li>  
<li><a href="#" class="link" id="ilink_3"><img src="bla.png" class="img" id="img_3"></a></li>  
<li><a href="#" class="link" id="llink_1">blablabla</a></li>  
<li><a href="#" class="link" id="llink_2">blablabla</a></li>  
<li><a href="#" class="link" id="llink_3">blablabla</a></li>  
</ul>  

Um ehrlich zu sein: eigentlich ist das Problem schon gelöst. Ersetzt man event.target durch event.currentTarget bekommt man genau das, was man will. An die Lösung gelang ich allerdings mittels Trial&Error und hat mit der Durchdrungenheit des Problems nichts zu tun. Wäre deshalb für Hinweise trotzdem dankbar.

Gruß

p_d