jQuery 함수 반복 실행 방지 기능

2014.02.20 03:34

jurohan 조회 수:2275

resize, scroll,resize 등에 함수를 추가하다보면

함수가 반복되어 실행되는 문제가 존재한다.


이럴 경우 해당 함수를 실행하기전에

인식변수를 선언함으로써 해결할 수 있는데, 단순히 선언하고 해당 변수의 값 변화만으로 해결하기엔 완벽하지 않다.

해당 인식변수의 값을 변환시키는 것을 별도로 함수로 만들고, 해당 함수를 실행시키는 것을 몇초 후 진행하도록 하면,

중복 실행을 막을 수 있다.


function goto_down(){

if($changing_now == 'off'){

setTimeout( check_mov, 1000);

//alert($changing_now);

var down_val = u_filter+1;

//alert(down_val);

if(down_val<slide_count){

$('.slides section').each(function() {

//filterVal(해당 div의 아이디값)을 클래스 값으로 가진 div가 있을 경우..

$(this).slideUp();

});

$('#slide_'+down_val).slideDown();

u_filter = down_val;

location.href = '#!/'+down_val;

setTimeout(function(){

check_height();

},1000);

}else{

alert('마지막 슬라이드입니다.');

}

setTimeout(function(){

check_doc_height();

},1000);

$changing_now = 'on';

//함수를 그만 실행해라.

return false;

}

}

function check_mov(){

//3초후 이게 실행되기 전까지는 chaging_now 값이 on상태

$changing_now = 'off';

}


© juroweb 2003-2014. All rights reserved
log in