Frage

zugewiesen ich ein Timeout auf meinen window.resize Handler so, dass ich nicht meine beträchtliche Menge jedes Mal Code, um das Resize-Ereignis ausgelöst wird die Größe nennen würde. Mein Code sieht wie folgt aus:

<script>
function init() {
  var hasTimedOut = false;
  var resizeHandler = function() {
    // do stuff
    return false;
  };

  window.onresize = function() {
    if (hasTimedOut !== false) {
      clearTimeout(hasTimedOut);
    }
    hasTimedOut = setTimeout(resizeHandler, 100); // 100 milliseconds
  };
}
</script>
<body onload="init();">
...
etc...

In IE7 (und möglicherweise anderen Versionen) scheint es, dass, wenn Sie dies tun der Resize-Ereignis wird ständig Feuer. Genauer gesagt, wird es nach jeder Timeout Dauer Feuer -. 100 Millisekunden in diesem Fall

Irgendwelche Ideen, warum oder wie dieses Verhalten zu stoppen? Ich würde wirklich lieber nicht meinen Resize-Code für jeden Grßenänderungsereignis nenne das Feuer in einer einzigen Größe neu bestimmen, aber das ist noch schlimmer.

War es hilfreich?

Lösung

In Ihrem // do Sachen Code, manipulieren Sie eine der oben, links, Breite, Höhe, Grenze, Rand oder Polstereigenschaften?

Sie können unbeabsichtigt Rekursion auslösen werden, die unbeabsichtigt Rekursion auslöst, die unbeabsichtigt Rekursion löst ...

Andere Tipps

Wie das Resize-Ereignis in IE zu beheben

Auch finden Sie die Antwort für "scunliffe" „In Ihren ... Eigenschaften?

IE ist in der Tat ständig seine Größe ändern Ereignis ausgelöst, während die Größenänderung stattfindet (die Sie müssen wissen, wie Sie bereits ein Timeout für eine Korrektur der Umsetzung).

Ich bin in der Lage, die Ergebnisse zu replizieren Sie sehen, Ihren Code verwenden, auf meiner Testseite.

Allerdings geht das Problem weg, wenn ich das Timeout auf 1000 statt 100 erhöhen Sie wollen mit unterschiedlichen Warten Werten, um zu versuchen, um zu sehen, was für Sie.

Hier ist die Testseite habe ich : es hat eine schön dynamisch Wartezeit bereits für Sie eingerichtet, mit zu spielen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top