사이트 방문자가 이벤트를 발생시킨 요소의 정보를 구해올 때 this를 이용할 수 있다.
또한 이벤트가 발생한 요소의 index값을 구해오는 방법도 구해올 수 있다.
여기서 this는 = 이벤트가 발생한 요소
$(this) 선택자
이벤트 핸들러에서 $(this)를 사용하면 이벤트가 발생한 요소를 추적할 수 있다.
$(this) 안에는 이벤트가 발생한 요소, 즉 해당 태그가 반환된다.
내가 클릭한 요소를 선택할 때 this를 사용할 수 있다.
index( )메서드
이벤트를 등록한 요소 중 이벤트가 발생한 요소의 인덱스 값을 반환한다.
[기본형]
* 예시는 그룹이벤트이지만 단독 이벤트에서도 사용 가능
$('이벤트 대상').on("이벤트명", function(){
$('이벤트 대상').index(this)
})
this 예제 )
a태그 중에서 내가 클릭한 요소만 css 요소 적용하기
<h2>$(this)</h2>
<ul class="menu_wrap_1">
<li><a href="#">메뉴1</a></li>
<li><a href="#">메뉴2</a></li>
<li><a href="#">메뉴3</a></li>
</ul>
$(".menu_wrap_1 a").on("click", function (e) {
e.preventDefault(); //기본이벤트 차단
// 모든 a태그의 배경 색상을 흰색으로 지정
$(".menu_wrap_1 a").css({
backgroundColor: "#fff",
});
//this : 사용자가 클릭한 a태그를 선택
$(this).css({
backgroundColor: "gold",
});
});
모든 a태그의 배경을 먼저 흰색으로 만들어놓은 다음에
내가 클릭한 요소만 해당 gold 색상을 적용
index 예제 )
<h2>index()</h2>
<ul class="menu_wrap_2">
<li><a href="#">메뉴1</a></li>
<li><a href="#">메뉴2</a></li>
<li><a href="#">메뉴3</a></li>
</ul>
<p class="idxNum"></p>
$(".menu_wrap_2 a").on("click", function (e) {
e.preventDefault(); //기본이벤트 차단
// 모든 a태그의 배경 색상을 흰색으로 지정
$(".menu_wrap_2 a").css({
backgroundColor: "#fff",
});
//menu_wrap_2 a태그 중 클릭한 요소(this)의 index값을 idx에 할당
let idx = $(".menu_wrap_2 a").index(this);
$(".menu_wrap_2 a").eq(idx).css({
backgroundColor: "green",
});
// P태그인 idxNum에 내가 클릭한 인덱스 번호를 출력해주기
$(".idxNum").text(idx);
});
'제이쿼리' 카테고리의 다른 글
[제이쿼리]- 이벤트 제거 메서드 / 기본이벤트와 라이브이벤트 각각 제거 (0) | 2024.08.27 |
---|---|
[제이쿼리]- 그룹 이벤트 등록 메서드 종류 / 라이브 이벤트 등록 메서드/ 동적으로 생성한 요소에 이벤트 등록하기 - 라이브 이벤트 (0) | 2024.08.27 |
[제이쿼리]- 키보드 이벤트 / 엔터 키를 누르면 클릭해서 제출한 것처럼 강제 이벤트를 발생 시키기 (0) | 2024.08.26 |
[제이쿼리]- ★change 이벤트 / 쇼핑몰 사이트에서 선택한 물건에 따라 값을 다르게 표현해줄 때 사용하는 이벤트 (0) | 2024.08.26 |
[제이쿼리]- 포커스 이벤트 / 키보드 접근성 / 이벤트에 함수 따로 빼서 만들고 함수명으로 등록하기 (0) | 2024.08.26 |