2011-01-27 70 views
0

我试图检测浏览器何时停止调整大小。以下工作,但取决于全球变量。没有办法使用闭包来避免这种情况吗?如果是这样,怎么样?ResizeStop没有命名空间污染

var rtime = new Date(1, 1, 2000, 12,00,00); 
    var timeout = false; 
    var delta = 200; 

    $(document).ready(function() {   

     $(window).resize(function() { 
      rtime = new Date(); 
      if (timeout === false) { 
       timeout = true; 
       setTimeout(resizeend, delta); 
      } 
     }); 

    }); 

    function resizeend() { 
     if (new Date() - rtime < delta) { 
      setTimeout(resizeend, delta); 
     } else { 
      timeout = false; 
      $("#log").append("<span>resizeend</span> "); 
     }    
    } 

**脚本信用:http://vidasp.net/resizeend.html

回答

0
(function(){ 
var rtime = new Date(1, 1, 2000, 12,00,00); 
var timeout = false; 
var delta = 200; 

$(document).ready(function() {   

    $(window).resize(function() { 
     rtime = new Date(); 
     if (timeout === false) { 
      timeout = true; 
      setTimeout(resizeend, delta); 
     } 
    }); 

}); 

function resizeend() { 
    if (new Date() - rtime < delta) { 
     setTimeout(resizeend, delta); 
    } else { 
     timeout = false; 
     $("#log").append("<span>resizeend</span> "); 
    }    
} 
})(); 

是一个封闭

+1

不会当setTimeout的触发它是不确定这项事业resizeend? – Matrym 2011-01-27 02:55:51