小虾虎鱼

小虾虎鱼

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

作者 禾惠 发表于 2012/08/17,最后修改于 2012/08/17

    昨天在使用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++;
});