2013-03-04 4 views
16

Как я могу вызвать для этой (или любой) JS-функции, которая будет запущена снова всякий раз, когда изменяется окно браузера?Вызвать функцию при изменении размера окна

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

ответ

21

Вы можете использовать окно onresize событие:

window.onresize = setEqualHeight; 
14

Вы можете подписаться на window.onresize события (See here)

window.onresize = setEqualHeight; 

или

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

Вы используете jquery, поэтому привяжите его, используя метод .resize().

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

Работал как шарм !!! Спасибо – Si8

7

Этот фрагмент кода добавит таймер, который вызывает функцию изменения размера после 200 миллисекунд после изменения размера окна. Это уменьшит вызовы метода.

var globalResizeTimer = null; 

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

за сокращение вызовов метода – Andras

Смежные вопросы