Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 窗口大小调整功能运行两次_Javascript_Jquery - Fatal编程技术网

Javascript 窗口大小调整功能运行两次

Javascript 窗口大小调整功能运行两次,javascript,jquery,Javascript,Jquery,请在下面找到我的代码: <script type="text/jscript"> $(document).ready(function() { $(window).resize(function(){ alert("Window resized"); }); }); </script> $(文档).ready(函数(){ $(窗口)。调整大小(函数(){ 警报(“窗口大小调整”); }); }); 每当调整窗口大小时,我都会运

请在下面找到我的代码:

<script type="text/jscript">

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

</script>

$(文档).ready(函数(){
$(窗口)。调整大小(函数(){
警报(“窗口大小调整”);
});
});

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

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

因此,您需要使resize事件回调尽可能小,因为它会经常触发。你可以这样做来控制它:

var resizeTimer = undefined;

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

只有在200毫秒内没有后续调整大小事件出现时,才会调用
警报。

您是否可以为问题FIDLE创建一个FIDLE。但是看起来不错。。你是如何调整它的大小的!!通过代码或通常使用鼠标??如果调试器处于打开状态,这将导致调整大小事件发生两次,因为更改浏览器调试器大小也将计为窗口调整大小。调试器的大小调整似乎是分开进行的。我想这个链接有你的答案[谢谢你,Anders。它成功了。我认为这是我的错误,我尝试了好几次免费重新编写整个420+行的js。再次感谢你。