Ron: Image Area

Hallo,

habe eine Frage:

Ist es möglich mir Javascript das onclick-event einer ImageArea zu verändern??

Beipsiel:
<!-- ImageArea -->
<map name="quizImage" id="Area">
<area alt="" coords="365,1,451,27"   href="#" onclick="showHighlight(0);showResult(1, 3)" id="Area0">
<area alt="" coords="0,0,364,244"    href="#" onclick="showHighlight(1);showResult(0, 3)" id="Area1">
<area alt="" coords="364,27,451,244" href="#" onclick="showHighlight(1);showResult(0, 3)" id="Area2">
</map>
<!-- ImageArea -->

<!-- JavaScript -->

document.getElementById("Area").document.getElementById("Area"+i).getElementsByTagName("a")[0].onclick = null;

<!-- JavaScript -->

Funcktioniert leider nicht. Erkennt jemand den Fehler oder hat vielleicht eine bessere Lösung?

Vielen Dank
Ron

  1. gruss Ron

    "HTMLAreaElement"-objekte werden auch ueber
       die "document.links"-collection referenziert.

    so long - peterS. - pseliger@gmx.net

    --
    "Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
    Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
    ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]
  2. Hallo,

    document.getElementById("Area").document.getElementById("Area"+i).getElementsByTagName("a")[0]

    Wie kommst du denn darauf, was stellst du dir unter dieser Logik vor?

    Erst einmal document.getElementById("Area"), ok. Das liefert dir den map-Elementknoten. Mit dem willst du aber doch nichts anfangen. Du willst das area-Element mit id="AreaX". Also nimmst du direkt document.getElementById("Area" + i). Damit hast du den area-Elementknoten. document.getElementById("Area" + i).onclick wäre dann das die Eigenschaft, die du ansprechen willst. Voilà, so einfach ist es. Wie kommst du aber auf die Doppelung von getElementById und dann noch auf getElementsByTagName("a")?

    Willst du alle area-Elemente durchlaufen? Dann ist getElementsByTagName("area") natürlich angebracht, das liefert dir eine Elementliste, die du z.B. mit einer for-Schleife durchlaufen kannst.

    .onclick = null ist schon ganz richtig.

    Mathias