¿Por qué es el evento de cambio de tamaño constantemente disparando cuando me asigno un controlador con un tiempo de espera?

StackOverflow https://stackoverflow.com/questions/1262774

Pregunta

he asignado un tiempo de espera a mi manejador window.resize por lo que no iba a llamar a mi cambio de tamaño considerable cantidad de código cada vez que se activa el evento de cambio de tamaño. Mi código es el siguiente:

<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...

En Internet Explorer 7 (y posiblemente otras versiones) se desprende que cuando se hace este caso, el cambio de tamaño va en constante fuego. Más exactamente, se disparará después de cada duración del tiempo límite -. 100 milisegundos, en este caso

¿Alguna idea de por qué o cómo detener este comportamiento? Realmente preferiría no llamar a mi código de cambio de tamaño para cada evento de cambio de tamaño que los incendios en un solo cambio de tamaño, pero esto es peor.

¿Fue útil?

Solución

En el código // hacer cosas, qué manipular cualquiera de las propiedades superiores, izquierda, anchura, altura, fronteras, márgenes o de relleno?

Es posible que sin querer ser los desencadenantes de la recursividad que desencadena involuntariamente la recursividad que desencadena involuntariamente la recursividad ...

Otros consejos

Cómo solucionar el caso de cambio de tamaño en el IE

También, ver la respuesta de "scunliffe" "En sus propiedades ...?

IE en efecto, se disparó constantemente su evento de cambio de tamaño al cambiar el tamaño está teniendo lugar (que usted debe saber, como ya se está implementando un tiempo de espera para una solución).

Soy capaz de replicar los resultados que está viendo, utilizando su código, en mi página de prueba.

Sin embargo, el problema desaparece si aumento el tiempo de espera a 1000 en lugar de 100. Es posible que desee probar con diferentes valores de esperar a ver lo que funciona para usted.

Aquí está la página de prueba utilicé : tiene una dinámica muy bien período de espera ya configurado para jugar con.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top