当我调整窗口大小一次时,jQuery中的Window Resize问题,它给了我2

时间:2016-03-10 08:59:30

标签: jquery

当我运行这一次时它给了我窗口大小调整:2为什么这样以及当我只调整窗口一次时如何得到1。

<script src="jquery-2.2.1.min.js">

</script>
<script>

var x=0;
$(document).ready(function()
{
           $(window).resize(function()
           {
               $("span").text(x += 1);
           });        
});    
</script>
</head>    
<body>
<p>Window resized :<span></span></p>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

为什么会触发两次

这回答了您的问题:Why does the jQuery resize event fire twice?

我添加了一个小提琴,确认它在Chrome中按比例缩小时触发两次,一次按比例放大。在Edge中,它会在向上和向下的比例上触发一次。

var x=0;

$(window).resize(function()
{
  console.log(x +=1);
});        

Fiddle

如何使其触发一次

var x = 0,
    y = 0;
$(window).resize(function() {
    clearTimeout(y);
    y = setTimeout(finishedRezise, 100);
});

function finishedRezise(){
  console.log(x += 1);  
}

Fiddle

javascript函数SetTimeout()阻止函数执行指定的毫秒数。 clearTimeout()从SetTimout()中清除定时器,并将setTimeout()的返回值作为参数,并且需要全局定义。请参阅W3Schools文档W3School