发布于 9 年前 ,更新于 9 年前 javascript

解决jQuery的resize事件执行两次的方法

昨天在使用jQuery的resize事件时发现每次改变浏览器的窗口大小时resize时间会执行两次,百度搜索了一下没有找到原因的所在,但找到一个解决的方法,使用setTimeout来解决这个问题(感觉有点瑕疵),代码如下:

var resizeTimer = null; 
$(window).resize(function() { 
    if (resizeTimer) clearTimeout(resizeTimer); 
    resizeTimer = setTimeout("alert('mm')", 500); 
});

自己也想了一个比较简单的方法,通过判断变量的奇偶来解决(感觉这方法还行),代码如下:

var n=0;
$(window).resize(function(){
    if(n%2==0){
        alert("mm");
    }
    n++;
});
© 2016 - 2021 BY 禾惠 粤ICP备20027042号