32

每当调整浏览器窗口的大小时,如何调用此(或任何)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>
4

4 回答 4

41

您可以使用窗口onresize事件:

window.onresize = setEqualHeight;
于 2013-03-04T15:58:48.903 回答
23

您可以订阅该window.onresize活动(请参阅此处

window.onresize = setEqualHeight;

或者

window.addEventListener('resize', setEqualHeight);
于 2013-03-04T15:59:14.973 回答
18

这段代码将添加一个计时器,该计时器在窗口调整大小后 200 毫秒后调用 resize 函数。这将减少方法的调用。

var globalResizeTimer = null;

$(window).resize(function() {
    if(globalResizeTimer != null) window.clearTimeout(globalResizeTimer);
    globalResizeTimer = window.setTimeout(function() {
        setEqualHeight();
    }, 200);
});
于 2013-03-04T16:03:12.687 回答
14

你使用jquery,所以使用.resize()方法绑定它。

$(window).resize(function () {
    setEqualHeight( $('#border') );
});
于 2013-03-04T16:01:43.490 回答