elisabeth: onmouseover Bilderwechsel verzögern

Hallo,

ich habe folgendes Problem:
ich will sehr viele, in einer
Tabelle angeordnete Bilder per onmouse...
wechseln lassen.

Ich habe jetzt für jedes Bild eine eigene Funktion
gemacht, nach folgendem Schema:

function wechsel09(bildpfad) {
document.images["nr09"].src=bildpfad; }

das Bild sieht so aus

<td>
<a href="center.html" onmouseover="wechsel09('pic/09_grau.jpg')" onmouseout="wechsel09('pic/09_blau.jpg')">
<img name="nr09" src="blau_zu_grau/09_blau.jpg" width="70" height="69" border="0">
</a>
</td>

nun möchte ich die jeweiligen Wechsel aber verzögern.
Ich habe das setTimeout schon auf verschiedenste Weise eingebunden.

am aussichtsreichsten erschien mir:

onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"

aber auch das hat nicht geklappt.

Kann mir jemand einen Tipp geben?
Haupsächlich kommt es mir auf's onmouseover an, das onmouseout wäre
ein zweiter schritt (falls sich die Verzögerungen behindern sollten).

vielen dank,
elisabeth

  1. Hallo,

    Ich habe jetzt für jedes Bild eine eigene Funktion
    gemacht, nach folgendem Schema:

    also das ist unnötig viel Code. viel eleganter wäre doch eine Funktion, der du noch den Bildname übergibst:

    function wechsel(bildname, bildpfad) {
    document.images[bildname].src=bildpfad; }

    am aussichtsreichsten erschien mir:
    onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"

    sieht fast gut aus. Ich denke es klappt nicht, da du " innerhalb " benutzt. Du musst also "escapen": Probier mal:
    onmouseover="setTimeout("wechsel01('pic/09_grau.jpg');",1500);"

    oder sonst einfach mit neuer Funktion und die beim onmouseouver aufrufen:

    onmouseover="verzoegerterBildWechsel('...');";

    ein zweiter schritt (falls sich die Verzögerungen behindern sollten).

    ja, das werden sie evtl: Lösung: dem Timeout einen namen geben und das Timeout beim onmouseout löschen:

    var timer = setTimeout(...)

    onmouseout="clearTimeout(timer);Bildwechsel()";

    dann wird das timeout gestoppt und nicht mehr das Bild gewechselt.

    Christian

    1. hallo Christian,

      danke für deine Antwort

      also das ist unnötig viel Code. viel eleganter wäre doch eine Funktion, der du noch den Bildname übergibst:

      function wechsel(bildname, bildpfad) {
      document.images[bildname].src=bildpfad; }

      ja, du hast natürlich Recht, aber ich wollte diese
      Verzögerung auch für jedes Bild einzeln angeben
      Inzwischen werde ich es aber wohl mit deiner Funktion
      machen.

      das mit dem setTimeout-Aufruf nach onmouseover
      funktioniert in zig Varianten nicht.

      Ich habe mir nun überlegt, einfach eine funktion zu
      machen, bekomme es aber nicht hin, das diese verzögert
      ausgeführt wird.

      ein versuch:

      function wechsel(bildname, bildpfad) {

      window.setTimeout("wechsel(bildname, bildpfad);",5000);
      document.images[bildname].src=bildpfad; }

      ein anderer:

      function wechsel(bildname, bildpfad) {
         window.setTimeout("document.images[bildname].src=bildpfad;",5000);
       }

      Falls ich das irgendwann mal schaffe, will ich diese
      Zeitverzögerung noch per Zufallsvariable machen.

      grüße,
      elisabeth