Shorty Be: map area mir referenz auf image-Name oder -ID?

Hallo,

ich habe mehrere Grafiken mit mehreren sensitiven Bereichen (map -> area) pro Grafik definiert.
Beim mouseOver wird eine JS-Funktion aufgerufen, an die bestimmte werte übergeben werden sollen.
u.a die ID des AREAs

<code>

<img src="images/6110.gif" name="etage_1" alt="" width="191" height="162" usemap="#rpMaps1" border="0">
<img src="images/6100_2.gif" name="etage_2" alt="" width="191" height="132" usemap="#rpMaps2">
<img src="images/6100_3.gif" name="etage_3" alt="" width="191" height="125" usemap="#rpMaps3">

<map name="rpMaps1">
  <area shape="poly" coords="80,125,113,126,113" id="6110" href="#" onMouseOver="setRpImages(this.id '1')" onMouseOut="setRpImages(this.id, '0')">
<!--
<area xxx>
x
x
x
<area xxx>
-->
</code>

Nun möchte ich aber an die JS-Funktion auch die ID oder den Namen mit übergeben, wo der sensitive Bereich genutzt/berührt geworden ist.

Ich könnte natürlich den Namen oder die Id direkt übergeben, möchte es aber lieber variabel halten.
das heisst ich möchte etwas wie this.image.id oder this.image.name übergeben. natürlich funzt das mit this.image.id etc. nicht.
aber ist das irgendwie machbar?

danke im vorraus,
Shorty Be

  1. Hallo,

    das heisst ich möchte etwas wie this.image.id oder this.image.name übergeben. natürlich funzt das mit this.image.id etc. nicht.
    aber ist das irgendwie machbar?

    ausgehend von einem map- bzw. area-Element kannst du nicht so einfach herausbekommen, welche Grafik(en) im Dokument von dieser Imagemap Gebrauch machen.

    Am besten gibst du der Grafik und der Imagemap eine ähnliche ID, sodass man von der einen auf die andere schließen kann (z.B. img_etage1 und map_etage1).

    Ansonsten müsstest du in der Funktion setRpImages() alle Grafiken im Dokument durchlaufen (document.images) und im usemap-Attribut schauen, ob darin der Name der map steht. Das wäre wohl arg aufwändig.

    Andererseits ist es recht einfach, Beziehungen zwischen den Objekten anzulegen, wenn du die JavaScript-Logik nicht ins HTML schreibst, sondern per JavaScript beim Laden hinzufügst. Dann kannst du auch einmal alle Grafiken durchlaufen, über das usemap-Attribut zum map-Element und darüber zu den area-Elementen kommen. Dort werden dann Handler registriert. Mit area_element.image = img_element; könntest du dann eine Verbindung zwischen den Elementobjekten herstellen, die du später dann nutzen kannst.

    Mathias