Florian: Eventhandler aufeinander abstimmen

Hallo,

ich schreibe zum ersten Mal in dieses Forum und hoffe, dass mir jemand helfen kann :)

Ich habe ein Problem bei der Abstimmung zweier Eventhandler und hoffe, dass mir jemand helfen kann.

Zuerst soll beim Überfahren bestimmter Bereiche einer Imagemap diese jeweils gegen ein anderes Bild ausgetauscht werden (Event1: onmouseover/onmouseout). Zusätzlich soll per onClick das Bild gegen ein wiederum anderes ausgetauscht werden (Event2) und beim zweiten Klick zurück ins Original. Ich habe nun das Problem, dass Event2 nicht mehr funktioniert, wenn nach dem ersten Klick Event1 ausgelöst wird. Sprich: Ich brauche eine Möglichkeit Event1 so zu modifizieren, dass es nur ausgelöst wird, falls das Originalbild angezeigt wird. Sprich: nach dem ersten onKlick soll das onMouseOver gesperrt werden bis wieder geklickt wurde. Am besten ginge wohl eine If-Abfrage, aber sowas hab ich noch nie gemacht

Das war jetzt viel Text, deshalb hier kurz der Code :)

Event1:
var boryl4a=new Image();
boryl4a.src="files/boryl4a.jpg";

var boryl4=new Image();
boryl4.src="files/boryl4.jpg";

function aendern()
{document.images.boryl4.src=boryl4a.src;}

function zurueck()
{document.images.boryl4.src=boryl4.src;}

Event2:
function alle(bild, flipto)
{
 if(!bild.old)
 {
  bild.old = bild.src;
  bild.src = flipto;
 }
 else
 {
  var src = bild.src;
  bild.src = bild.old;
  bild.old = src;
 }
}

HTML-Tag:
<img src="files/boryl4.jpg" border="0" usemap="#boryl4" name="boryl4" onclick="alle(this, 'files/boryl4alle.jpg');">
     <map name="boryl4">
     <area shape="rect" nohref coords="165,10,315,150" onMouseOver="aendern()"; onMouseOut="zurueck()";>

Ich bin für jede Hilfe dankbar!

  1. Hallo,

    .... sprich: Ich brauche eine Möglichkeit Event1 so zu modifizieren, dass es nur ausgelöst wird, falls das Originalbild angezeigt wird. Sprich: nach dem ersten onKlick soll das onMouseOver gesperrt werden bis wieder geklickt wurde.

    habe ich es richtig verstanden, Haupt- und Untermenü sollen am gleichen Ort angezeigt werden? Stelle ich mir eher verwirrend vor.

    Brauchst du nicht vielmehr für jedes image eine eigene map?
    beim Imagewechsel müsste dann auch das useMap-Attribut angepasst werden ...

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·
    1. Hallo,
      Danke erstmal für die Antwort.

      Es geht garnicht um ein Menü, sondern vielmehr um chemische Reaktionsgleichungen. Es handelt sich um ein Bild, in dem ich mehrere Areas definiert habe. Beim Überfahren derer wird jeweils das ganze Bild ausgetauscht. Prinzipiell wäre es natürlich besser, immer nur einen Teil auszutauschen, aber dazu hätte ich das Bild zerschneiden müssen und das ging mit dem Textfluss nicht...

      Gruß
        Florian

      Hallo,

      .... sprich: Ich brauche eine Möglichkeit Event1 so zu modifizieren, dass es nur ausgelöst wird, falls das Originalbild angezeigt wird. Sprich: nach dem ersten onKlick soll das onMouseOver gesperrt werden bis wieder geklickt wurde.

      habe ich es richtig verstanden, Haupt- und Untermenü sollen am gleichen Ort angezeigt werden? Stelle ich mir eher verwirrend vor.

      Brauchst du nicht vielmehr für jedes image eine eigene map?
      beim Imagewechsel müsste dann auch das useMap-Attribut angepasst werden ...

      Gruß plan_B

      1. Hallo,

        Es geht garnicht um ein Menü, sondern vielmehr um chemische Reaktionsgleichungen. Es handelt sich um ein Bild, in dem ich mehrere Areas definiert habe. Beim Überfahren derer wird jeweils das ganze Bild ausgetauscht.

        ... auch in diesem Fall halte ich den Austausch oder die Deaktivierung der Map für sinnvoll.
        Denn die Areas, die augenblichlich keine Funktion haben, müssen ausgeschaltet werden. Klar, du kannst in den onmouseover-Funktionen z.B. die src abfragen und dann ggf die Funktion sofort verlassen. Aber der Besucher wird durch den Maus-Cursor verwirrt, wenn auf einmal doch nix passiert.

        Gruß plan_B

        --
             *®*´¯`·.¸¸.·