Dirk Ruchatz: onmouseover/out/click mit nur 2 Grafiken

Beitrag lesen

Moin Viktor,

Hmmmmmm, der Testserver ist NICHT mein Provi, sondern ist direkt am UNI-Netz.

Oh, dann wundert mich das Tempo...

Hab es schon geändert, aber geht immer noch nicht. Das war nur ein uploadfehler von mir :o) Diese Variante hab ich aber auch schon mal versucht, ohne Erfolg. Der rote Button bleibt einfach nicht aktiviert, wenn man draufklickt. Er wird gleich wieder grün.

Wie bereits gesagt:

»»  Bei Deinem Script wird natürlich durch onmouseout="statusaus(document.Bild2)" auch der gewählte Link wieder grün angezeigt, sobald die Maus bewegt wird. Um das zu verhindern, müsstest Du noch eine Variable einfügen, in der gespeichert wird, welcher Button gerade gerade gewählt ist und diese Variable statt if (Bild.src == ...) in StatusEin und StatusAus abfragen.

Oha, was mich halt wundert, das das Teil mit 3 Butttons geht. Der Vorschlag von Dir hört sich zwar gut an, aber da ich von JavaScript keine Ahnung habe, kann ich damit leider nicht viel damit anfangen.

Das liegt eben daran, daß im dem Script bei onmouseout die Bedingung "if (Bild.src == rotImage.src)" abgefragt wird und eben diese Bedingung bei 3 Buttons _nicht_ erfüllt ist. Bei nur 2 Buttons dagegen trifft sie zu!

Eine einfache Lösung auf die Schnelle wäre die Funktionen statusaus und gewaehlt um einen Parameter BildNr zu erweitern und eine globale Variable aktivesBild einzufügen:

var aktivesBild = 0;

// Statustext anzeigen, Button rot
function statusein(Bild,text,BildNr)
{
   window.status = text;
   if (document.images)
         Bild.src = rotImage.src;
}
/* Die zweite If-Abfrage ist bei zwei Buttons überflüssig */

// Statustext aus, Button gruen
function statusaus(Bild,BildNr)
{
   window.status="";
   if (document.images)
      if (BildNr != aktivesBild)
        Bild.src = gruenImage.src;
}
/* Bild nur austauschen, wenn das Bild, das der Mauszeiger verläßt nicht das aktuell gewählte ist */

// aktuellen Link kennzeichnen
// dazu alle Buttons gruen, dann
// Button gewaehlter Link rot

function gewaehlt(Bild,BildNr)
{
   if (document.images)
   {
      aktivesBild=BildNr;
      for (i=0; i<document.images.length; i++)
       document.images[i].src = gruenImage.src;
       Bild.src = rotImage.src;
   }  
}

Zusätzlich muß dieser Parameter dann in den Anker-Definitionen mit angegeben werden, also z.B.:

<a (...) onmouseout="statusaus(document.Bild1,1)" onclick="gewaehlt(document.Bild1,1)">

»»  Solange das Teil nicht geht, bastell ich auch nicht an meiner Seite rum.......... erst nächste Woche dann, da hab ich Urlaub. *freu*

Na dann: schönen Urlaub!

Nun????????? Haste nochmals eine Tipp????????

Ich hoffe, ich konnte Dir helfen! (Das ganze ist nicht getestet, sondern nur schnell hingeschrieben.)

Gruß
Dirk