Post

jQuery delay reset

delay 셋팅 이후 초기화를 하고 싶다.

jQuery delay reset

jQuery delay 는 무엇인가?

delay() | jQuery API Documentation

  • delay는 setTimeout과 같은 개념인대, animate를 사용할 때 시차를 두고 실행하게 된다.
  • delay(millisecond, name) 이렇게 사용하면 된다. 자세한 사용법은 늘 그렇듯이 documentation을 참고하면 좋다.

delay 초기화는?

  • element에 delay를 셋팅한 이후에는 계속해서 delay가 먹는 이슈를 만나게 되었다
    1
    2
    3
    4
    
    $('.element').delay(3000).fadeIn(800);
    $('.element close').click(function() {
      $(this).closest('.element').fadeOut(800);
    });
    
  • 위의 경우에서 [close] 를 클릭하면 delay없이 fadeout되기를 기대하게 되지.
  • 하지만, 한번적용된 delay는 계속해서 적용되게 되어 있었다.
  • 그래서, 아래와 같이 수정하였다.
    1
    
    $(this).closest('.element').stop().fadeOut(800);
    
  • stop() 을 사용하여 delay를 멈춰준것.

stop()은 무엇인가?

stop() | jQuery API Documentation

  • 간단하게 설명하자면, 실행 중인(혹은 적용 된) 애니메이션을 그 즉시 정지 시킴. 이라고 설명되어 있다.
  • 적용되어 있는 delay를 stop으로 정지 시키고, fadeOut을 실행한것이다.
This post is licensed under CC BY 4.0 by the author.