본문 바로가기
프로그래밍/jQuery

jQuery API 정복 - die(), 이벤트 해제하기

by zoo10 2011. 12. 8.

.die()

원문 링크 http://api.jquery.com/die/

함수들

die( )
  • .die( )
die( eventType [ , handler ] )
  • .die( eventType [, handler] )
  • .die( eventTypes )

.die( )Returns : jQuery

개요 : .live() 함수로 바인딩 된 모든 이벤트들을 제거합니다.

  • .die( )

.live() 함수로 바인딩 된 모든 이벤트를 .die()로 제거할 수 있습니다. 이 함수는 .bind() 함수로 바인딩 된 모든 이벤트를 제거하는 함수인 .unbind() 를 인자없이 호출하는 것과 유사합니다.

jQuery 1.7에서는, .die() (그리고 보완적인 함수인, .live()) 에 대하여 다루지 않습니다. 대신, .on() 함수로 바인딩된 이벤트를 제거하기 위해 사용되는 .off() 의 사용법에 대해 기술하고 있습니다.

Note: .die() 함수가 정확히 작동하게 하려면, 함수에서 사용된 선택자를 그대로 사용해야 합니다.

 

.die( eventType [, handler] )Returns : jQuery

개요 : .live() 함수로 바인딩 된 어떤 이벤트를 제거합니다.

  • .die( eventType [, handler] )
  • eventType click 또는 keydown과 같은 Javascript 이벤트를 포함하는 문자열.
  • handler 더 이상 수행하지 않게 할 기능
  • .die( eventTypes )
  • eventTypes 하나 이상의 이벤트 집합과 더 이상 실행하지 않을 그 이벤트들에 대한 기능들

.live() 함수로 바인딩 된 핸들러는 .die() 함수를 사용하여 해제할 수 있습니다. 이 함수는 .bind() 함수로 바인딩 된 모든 이벤트를 제거하는 함수인 .unbind() 를 인자없이 호출하는 것과 유사합니다.

Note: .die() 함수가 정확히 작동하게 하려면, 함수에서 사용된 선택자를 그대로 사용해야 합니다.

위에 있는 내용을 왜 반복해 놨을까요. ㅡㅡ;;

예 제  
색깔있는 버튼에 이벤트를 바인딩/해제합니다.

<!DOCTYPE html>
<html>
<head>
  <style>
button { margin:5px; }
button#theone { color:red; background:yellow; }
</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button id="theone">Does nothing...</button>
<button id="bind">Bind Click</button>
<button id="unbind">Unbind Click</button>

<div style="display:none;">Click!</div>
<script>

function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("#theone").live("click", aClick)
              .text("Can Click!");
});
$("#unbind").click(function () {
  $("#theone").die("click", aClick)
              .text("Does nothing...");
});

</script>

</body>
</html>

미리보기

live함수를 사용해서 click 이벤트와 aClick 함수를 색깔있는 버튼에 바인딩하고 die함수로 해제하는 것입니다. 차근히 살펴보세요.

 

예 제
모든 p태그에 live()함수로 바인딩된 이벤트 해제하기

$("p").die()

 

예 제
모든 p태그에 live() 함수로 바인딩된 click 이벤트만 해제하기

$("p").die( "click" )

 

예 제
두번째 인자를 주어 이전에 바인딩된 기능(함수)를 제거하기

var foo = function () { // code to handle some kind of event }; $("p").live("click", foo); // ... p태그를 클릭하면 foo함수가 호출됩니다. ... $("p").die("click", foo); // ... 더 이상 foo 함수가 호출되지 않습니다.

 

음.. 이 기술도 on, off로 대체되고 있는가 봅니다. 어쨌든 많이들 사용하고 계시거나 사용했을법한 이벤트 함수이네요. live()와 die()는 쌍이다. 함수명도 참 잘 만들었네요. :-)

그럼 즐프하세요.

※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.