javascript - 窗口调整大小函数运行两次

标签 javascript jquery

请在下面找到我的代码:

<script type="text/jscript">

  $(document).ready(function() {
    $(window).resize(function(){
      alert("Window resized");
    });
  });

</script>

每当调整窗口大小时,我都会运行此alert()两次。为什么?

最佳答案

它不只是触发两次,当窗口大小调整时它会触发任意次数。 Firefox 过去只会在调整大小“完成”时触发调整大小事件,但现在它会在调整大小期间触发多个调整大小事件,就像 Chrome 一贯所做的那样。

因此,您需要使调整大小事件回调尽可能小,因为它会经常触发。您可以通过执行以下操作来限制它:

var resizeTimer = undefined;

$(document).ready(function() {
  $(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function () {
      alert("Window resized");
    }, 200);
  });
});

如果在 200 毫秒内没有后续调整大小事件发生,这只会调用 alert

关于javascript - 窗口调整大小函数运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317882/

相关文章:

javascript - 这个javascript函数声明是什么意思

javascript - 如何使用 CSS/jQuery 将一个元素相对于另一个元素定位

javascript - 使用 pushstate 添加查询字符串

javascript - Bootstrap 文本对齐 : Empty input left - Filled input right

javascript - 高效地向 MongoDB 结果添加额外字段

php - 单击按钮使用 jquery 或 javascript 或 php 更改 &lt;script&gt; 标签内的文本

javascript - 禁用按钮,直到完成所有必填字段

java - Jquery 与 Servlet 获取数据库 JSON 数组对象

javascript - jquery ui 可排序 - 没有悬停事件

javascript - Angular JS - 使用带有嵌套自定义指令的 ControllerAs