jQuery(off, bind, delegate)
bind(type, data, fn, map) |
매치된 요소에 이벤트 처리기를 바인딩한다. type : 이벤트 종류 data : fn의 파라미터값 diprecated 되어있다. |
unbind(type, fn) | 매치된 요소에 이벤트 처리기를 제거한다. |
one(type, data, fn) |
Bind()와 같지만 이벤트를 한번만 실행하고 자동으로 이벤트를 제거한다. |
tigger(type) |
매치된 요소에 대하여 이벤트 타입에 해당하는 이벤트 처리기를 모두 실행한다. |
이벤트 해제
delegate(selector, type, fn) |
매치된 요소에 이벤트처리기를 바인딩 동적으로 작성된 새로운 요소에서도 이벤트실행 |
undegate | 매치된 요소에 이벤트 처리기를 제거 |
on(type, data, fn, map) on(type, selector, data, fn, map) |
bind방식 delegate 방식 |
off(event, selector, fn) | 매치된 요소에 이벤트처리기를 제거 |
1) bind()메소드는 선택자로 검색한 모든 엘리먼트에 핸들러를 등록한다
2)$(‘h1’)의 검색 결과가 몇개이는가에 상관없이 문서내의 모든 <h1>엘리먼트에 똑같은 핸들러가 등록 된다
3) 그러나 새로 추가되는 엘리먼트에는 핸들러가 지정되지 않아 이벤트가 발생해도 핸들러가 호출되지 않는다 .
4)미래에 추가될 엘리먼트에 대해서도 핸들러를 미리 등록하는 메서드가 필요
- $(document).delegate(선택자, 이벤트명, 핸들러 );
5) 특정 엘리먼트에 대해 핸들러를 지금 당장 등록하는 것이 아니라
6) 문서가 변경될때마다 핸들러가 등록되어야 하므로 document수준에서 메소드를 호출한다
(document 는 이벤트 대상객체의 부모가 될 수 있다)
7) u이처럼 실행중에 자동으로 등록되는 살아았는 핸들러를 라이브 핸들러 라고 한다 .
8) uversion 3.0에서 모든 이벤트 등록 메소드를 통합하는 메소드가 새로 도입
- on(이벤트명, [선택자], 핸들러) off( 이벤트명, [선택자], 핸들러)
9) 선택자 가 있으면 delegate와 같고 없으면 bind와 같다
delegate는 부모 요소를 $()로 잡아서 하던가 $(document)로 하면된다
새로 생성되는 버튼이 이벤트요소를 가지고 있으려면 delegate를 해줘야 한다.