当我运行这一次时它给了我窗口大小调整: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>
答案 0 :(得分:1)
为什么会触发两次
这回答了您的问题:Why does the jQuery resize event fire twice?
我添加了一个小提琴,确认它在Chrome中按比例缩小时触发两次,一次按比例放大。在Edge中,它会在向上和向下的比例上触发一次。
var x=0;
$(window).resize(function()
{
console.log(x +=1);
});
如何使其触发一次
var x = 0,
y = 0;
$(window).resize(function() {
clearTimeout(y);
y = setTimeout(finishedRezise, 100);
});
function finishedRezise(){
console.log(x += 1);
}
javascript函数SetTimeout()阻止函数执行指定的毫秒数。 clearTimeout()从SetTimout()中清除定时器,并将setTimeout()的返回值作为参数,并且需要全局定义。请参阅W3Schools文档W3School