Reiner Wirth: Timeout arbeitet im Firefox, nicht aber im IE

Beitrag lesen

Die Klammern scheinen zu stimmen (man nennt es übrigens anonyme Funktion), du kanst es dir hier aber einfacher machen und die Klamern bei dem if weglassen:

window.setTimeout(

function()
{
if (klicks == 1) parent.soundfrm.location.href = Sound;
else if (klicks == 2) callDHTML(Ebene, xO, yO);
klicks = 0;
}
, 250);


>   
> Struppi.  
  
  
Ich habe jetzt nochmal auf die zumindest für mich übersichtlichere Fassung mit den getrennten Funktionen "umgesattelt" und habe festgestellt, dass der IE jetzt nach 3x Klick das tut, was ich möchte. Gibt es dafür eine Erklärung?? Ich häts ja gern schon nach 2 Klicks. Immer dieser IE.  
  
function clickTimer(idEbene, xOff, yOff, idSound)  
 {  
  Ebene = idEbene;  
    Sound = idSound;  
    xO = xOff;  
    yO = yOff;  
    klicks++;  
    tout = window.setTimeout('clickErgebnis()',700); //-> Ebene zeigen  
   }  
 klicks = 0, tout = null;  
  
function clickErgebnis()  
  {  
   window.clearTimeout(tout);  
   if (klicks == 1)  
    {  
    parent.soundfrm.location.href = Sound;  //-> Sound abgespielen  
    } else {  
    callDHTML(Ebene, xO, yO);    //-> Ebene zeigen  
    }  
   klicks = 0;  
  }  
  
function callDHTML(id, xO, yO)  
 {  
 var xN = dd.getScrollX() \* 1 + xO \* 1;  
 var yN = dd.getScrollY() \* 1 + yO \* 1;  
 dd.elements[id].moveTo(xN, yN);  
 dd.elements[id].show();  
 topLifter(id);  
 alert(zTop);  
 }  
  
var zTop=0;  
function topLifter(idEbene)  
 {  
 zTop = zTop + 1;  
   document.getElementById(idEbene).style.zIndex=zTop;  
 }  
  
  
Reiner