NetAktiv
Senior HTML'ler
Hallo,
in einem Dokument habe ich ein paar Links mit folgendem Aufbau:
<a id='a1' href='ref_a'><img href='ref_i'>Linktext</a>
Ich wollte den onclick-Event abfangen und dann etwas mit den Attributen des Links tun, daher ordnete ich zu:
document.getElementById('a1').onclick = MyClick;
wobei es im Test erst mal so aussah.
function MyClick(evt) {
evt=evt||window.event;
var oElement = evt.srcElement || evt.target;
alert(oElement.nodeName + '\n' + oElement.href);
}
Sehr verwundert war ich dann über das Ergebnis. Klickte ich auf den Linktext, so gab es das erwartete Ergebnis A/ref_a. Klickte ich dagegen auf das Bild, so gab es das Ergebnis IMG/ref_i. Es sieht so aus, als würde das A-Objekt seinen Event an das eingebettet IMG-Objekt vererben. Klar, ich kann mir schon beim setzen des Events den Inhalt von allen A's merken und durchnummerieren und den onklick-Event mit der entsprechenden Nummer x aufrufen:
document.getElementById('a1').onclick = 'MyClick(x)';
Aber ich würde gerne verstehen, was beim Test hier genau passiert.
Grüße, Rainer
in einem Dokument habe ich ein paar Links mit folgendem Aufbau:
<a id='a1' href='ref_a'><img href='ref_i'>Linktext</a>
Ich wollte den onclick-Event abfangen und dann etwas mit den Attributen des Links tun, daher ordnete ich zu:
document.getElementById('a1').onclick = MyClick;
wobei es im Test erst mal so aussah.
function MyClick(evt) {
evt=evt||window.event;
var oElement = evt.srcElement || evt.target;
alert(oElement.nodeName + '\n' + oElement.href);
}
Sehr verwundert war ich dann über das Ergebnis. Klickte ich auf den Linktext, so gab es das erwartete Ergebnis A/ref_a. Klickte ich dagegen auf das Bild, so gab es das Ergebnis IMG/ref_i. Es sieht so aus, als würde das A-Objekt seinen Event an das eingebettet IMG-Objekt vererben. Klar, ich kann mir schon beim setzen des Events den Inhalt von allen A's merken und durchnummerieren und den onklick-Event mit der entsprechenden Nummer x aufrufen:
document.getElementById('a1').onclick = 'MyClick(x)';
Aber ich würde gerne verstehen, was beim Test hier genau passiert.
Grüße, Rainer