2011-01-27 4 views
0

브라우저의 크기가 조절되지 않는 것을 감지하려고합니다. 다음은 작동하지만 글로벌 vars에 따라 다릅니다. 이것을 피하기 위해 클로저를 사용할 방법이 없습니까? 그렇다면 어떻게?네임 스페이스 오염이없는 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> "); 
    }    
} 
})(); 

은의 setTimeout 그것을 트리거 할 때

+1

그 원인 resizeend가 정의되지 않는 것이다 폐쇄인가? – Matrym

+0

이 자체 호출 함수의 private 변수이기 때문에 – qwertymk