• [이런 저런 이야기] 제이쿼리 질문 드려요2020.08.10 PM 03:10

게시물 주소 FONT글자 작게하기 글자 키우기
LINK : //ecudemo138137.cafe24.com/index.html

$( function() {
    function bs_height_reload() {
        if( $(window).height() != $('#bsMainBanner').height() ) {
            location.reload();
        };
    };
    
    function bs_height_reload_clear() {
        clearInterval(bs_height_reload);
    };     
    
    setInterval(bs_height_reload, 3000);
    setTimeout(bs_height_reload_clear, 15000);    
});


메인배너의 높이값이 브라우저의 높이값과 다르면 새로고침되게 하려고 만들고 있습니다

(브라우저를 창모드로 하시고 브라우저 아래쪽을 위 아래로 드레그 하다보면 새로고침이 될거에요)


이 소스는 페이지가 열리고 15초 동안만 작동하게 하려 셋타임아웃으로 클리어인터벌 해주었어요

그런데 15초 이후에도 계속 작동되더라구요


혹이 이거 안되는 이유 아시는분 계실까요?


 

댓글 : 10 개
https://www.w3schools.com/jsref/met_win_clearinterval.asp
보면 setinterval 을 변수에 저장하고 clearInterval에 이걸 쓰네요.
한번 해볼게요
댓글 감사드립니다
말씀해주신게 정답이었어요 감사드려요!!
function 들을 jquery on-oad 안에 넣어둘 필요는 없을꺼 같은데요
위 펑션 2개를 $( function() { 위로 밀어놓구

$( function() {
setInterval(bs_height_reload, 3000);
setTimeout(bs_height_reload_clear, 15000);
});

이렇게 만 놔둬보세요
네 그렇게 해봤지만 안되네요 ㅜㅜ
댓글 감사드립니다
밑에분것이 답이네요

var aaInterval = setInterval(bs_height_reload, 3000);
하고 클리어 할때는 clearInterval(aaInterval);
하심 되네요
네 그렇게 했더니 되었어요
댓글 감사드립니다!!
setInterval과 setTimeout을 받은 객체를 생성.
var aa, bb = null;
식으로 해서 aa = setInterval, bb = setTimeout 으로 받은 후에

clearInterval(aa);
clearTimeout(bb);

식으로 처리해보세요
그렇게 해볼게요
댓글 감사드립니다
앗 말씀해주신게 정답이었어요 감사합니다 꾸벅
친구글 비밀글 댓글 쓰기