2013-03-04 6 views
16

Come posso richiedere che questa (o qualsiasi) funzione JS venga eseguita nuovamente ogni volta che la finestra del browser viene ridimensionata?Chiamare una funzione quando la finestra viene ridimensionata

<script type="text/javascript"> 
function setEqualHeight(e) { 
    var t = 0; 
    e.each(function() { 
     currentHeight = $(this).height(); 
     if (currentHeight > t) { 
      t = currentHeight 
     } 
    }); 
    e.height(t) 
} 
$(document).ready(function() { 
    setEqualHeight($(".border")) 
}) 
</script> 

risposta

21

È possibile utilizzare l'evento finestra onresize:

window.onresize = setEqualHeight; 
14

È possibile sottoscrivere l'evento window.onresize (See here)

window.onresize = setEqualHeight; 

o

window.addEventListener('resize', setEqualHeight); 
11

Si utilizza jquery, quindi associatelo utilizzando il metodo .resize().

$(window).resize(function() { 
    setEqualHeight($('#border')); 
}); 
+0

Ha funzionato come un fascino !!! Grazie – Si8

7

Questo pezzo di codice aggiungerà un timer che chiama la funzione di ridimensionamento dopo 200 millisecondi dopo che la finestra è stata ridimensionata. Questo ridurrà le chiamate del metodo.

var globalResizeTimer = null; 

$(window).resize(function() { 
    if(globalResizeTimer != null) window.clearTimeout(globalResizeTimer); 
    globalResizeTimer = window.setTimeout(function() { 
     setEqualHeight(); 
    }, 200); 
}); 
+0

big up per ridurre le chiamate del metodo – Andras