그룹 이벤트 등록 메서드 종류
그룹 이벤트 등록 메서드는 한 번의 두 개 이상의 이벤트를 등록할 때 사용한다.
그룹 이벤트는 다양한 종류가 있다.
그룹이벤트 기본형에 메서드 이름만 달리 적어주면 된다.
주로 on을 쓰고 이벤트를 찾아볼 때 메서드를 참고해 주면 된다.
1. ★on( )
: 이벤트 대상 요소에 2개 이상의 이벤트를 등록한다.
사용 방식에 따라 이벤트를 등록한 이후에 동적으로 생성되거나 복제된 요소에도 이벤트가 적용된다.
[on()메서드 등록 방식 1]
$('이벤트 대상').on("이벤트종류1 이벤트종류2 이벤트종류3...", function(){ 코드 });
: 여러 개의 이벤트를 한꺼번에 등록한다.
* 단, 이벤트가 발생할 때마다 동일한 이벤트 핸들러(함수)가 실행된다.
----------------------------------------------------------------------------------
[on()메서드 등록 방식 2]
$('이벤트 대상').on({
'이벤트종류1 이벤트종류2 이벤트종류3...' : function(){ 코드 }
})
: 1번과 동일하다. 객체로 등록하는 부분만 다르다. 여러 개의 이벤트를 한꺼번에 객체로 등록한다.
* 단, 이벤트가 발생할 때마다 동일한 이벤트 핸들러(함수)가 실행된다.
----------------------------------------------------------------------------------
[on()메서드 등록 방식 3]
$('이벤트 대상').on({
'이벤트종류1' : function(){ 코드 },
'이벤트종류2' : function(){ 코드 },
'이벤트종류3' : function(){ 코드 },
})
----------------------------------------------------------------------------------
[라이브 이벤트 등록]
$('document 또는 이벤트 대상의 상위 요소 부모요소').on('이벤트 종류', '이벤트 대상', function(){
이벤트 핸들러;
})
2. bind( )
: 이벤트 대상 요소에 2개 이상의 이벤트를 등록한다. ( 안쓴다 )
3. delegate( )
: 선택한 요소의 하위 요소에 이벤트를 등록한다. 이벤트를 등록한 이후에 동적으로 생성되거나 복제된 요소에도 이벤트가 적용된다.
* on( )라이브 이벤트와 문법상 다른 점은 이벤트 대상과 이벤트 종류의 자리가 서로 반대이다.
자리가 바뀌면 오류 발생함으로 주의
[delegate 라이브 이벤트 기본형]
$('document 또는 이벤트 대상의 상위 요소 부모요소'). delegate('이벤트 대상', '이벤트 종류', function(){
이벤트 핸들러;
})
4. one( )
: 이벤트 대상에 1개 이상의 이벤트를 등록한다. 지정한 이벤트가 1번 실행되고 자동으로 삭제된다. ( 새로고침 하면 다시 실행되긴 함)
일회성 이벤트에 사용 / one 메서드는 알아서 삭제되기에 삭제해주는 메서드가 없다.
[one 일반 이벤트 기본형]
$('이벤트 대상 요소').one('이벤트명', function(){ 이벤트핸들러 })
[one 라이브 이벤트 기본형]
$('document 또는 이벤트 대상의 상위 요소 부모요소').one('이벤트 종류', '이벤트 대상', function(){
이벤트 핸들러;
})
라이브 이벤트 등록 메서드
앞에서 배운 이벤트 등록 방식으로는 객체 조작 메서드에 의해 새롭게 생성, 복제된 요소에 이벤트를 등록할 수 없다.
그래서 동적으로 생성된 요소에도 이벤트를 넣어야할 경우,
라이브 이벤트 등록 메서드를 사용해야 한다.
[기본형]
$('document 또는 이벤트 대상의 상위 요소 부모요소').on('이벤트 종류', '이벤트 대상', function(){
이벤트 핸들러;
})
document 쓸 때는 문자열 안쓴다. 위의 기본형은 on의 기본형.
예제 ) 동적으로 생성한 요소에 그룹이벤트와 라이브이벤트를 각각 등록해 보고 실행되는지 확인해 보기
동적이게 추가한 요소에 일반 그룹이벤트는 적용이 되지 않는다.
라이브 이벤트를 사용하면 동적으로 생성한 요소에 이벤트를 넣을 수 있다.
예제) delegate 이벤트 메서드
btn3의 부모요소인 btn_wrap을 선택하여 라이브 이벤트를 등록
예제) one 메서드
btn4는 부모요소를 특정하기 어렵기 때문에 document를 선택하여 이벤트를 등록함.
'제이쿼리' 카테고리의 다른 글
[제이쿼리]- 효과 메서드 effect (0) | 2024.08.28 |
---|---|
[제이쿼리]- 이벤트 제거 메서드 / 기본이벤트와 라이브이벤트 각각 제거 (0) | 2024.08.27 |
[제이쿼리]- 이벤트가 발생한 요소 추적 / this를 이용해서 내가 클릭한 a 애들만 css 적용 / 내가 클릭한 요소가 this (0) | 2024.08.26 |
[제이쿼리]- 키보드 이벤트 / 엔터 키를 누르면 클릭해서 제출한 것처럼 강제 이벤트를 발생 시키기 (0) | 2024.08.26 |
[제이쿼리]- ★change 이벤트 / 쇼핑몰 사이트에서 선택한 물건에 따라 값을 다르게 표현해줄 때 사용하는 이벤트 (0) | 2024.08.26 |