카테고리 없음

22.07.06 - [jQuery] [ 함수 ] { 기타, 이벤트관련, 마우스, 키보드, 애니메이션 }

giggs 2022. 7. 15. 10:39

 

 

-- Index --

 

 

1. 함수 ( 기타 ) 2. 이벤트 관련 함수 3. 마우스 이벤트 4. 키보드 이벤트 5. 애니메이션
each() on() click(), dblclick() keyup() hide()
addClass() off() mouseup() keydown() fadein()
is() one() mouseenter() val().length slidedown()

 

 

 


 

 

 

1. 함수_기타

 

1.each() 

 

배열의 모든 요소 접근해서 값 가져오기

  • JS방식 --- for in 사용해서 인덱스 값으로 출력
  • jQuery방식 --- each(객체, 함수) 방식으로 출력

 

 

 

# for in 과 each() 비교해보기

  • jQuery 함수 each() 사용해주기 위해서
  • 요소를 jQuery객체로 바꿔주어야함----$(arr)

 

 

 

 

for in 은

  • i에 인덱스가 들어온다 - 이 인덱스를 이용해서 값을 얻어온다.
  • 배열에 몇 번째 값 obj[i] 이렇게 출력 가능

 

 

each() 함수는

  • jQuery 객체로 변환 필요 ( $() )
  • 두 번째 파라미터인 함수 부분에서 2개의 파라미터(a,b)를 받는데
  • a에는 인덱스 --- b에는 요소가 들어온다. 
  • a와 b출력

 

 

 


 

 

 

2. addClass()

 

클래스 추가해주기

  • JS방식 --- className 에 += 연산자로 이어 붙여서 해서 추가해주었음
  • jQuery방식 --- addClass('클래스네임') ; 

 

 

 

2-1 스타일 클래스 미리 만들어 놓고 진행

 


2-2 클래스 추가해주기 

  • each() 함수로 요소 하나하나 접근해서 클래스 추가
  • 스타일 적용으로 확인

 

 

 

### arr.each 부분과 $(elem) 부분 Check!

  • 이미 jQuery로 가져온 $(‘#ara1’)이므로 $(arr) 안 해줘도 된다.
  • elem은 jQuery 요소가 아닌데 jQuery 함수를 사용하려고 하니 에러 났다. - jQuery요소로 변환 필요

 

 

### JS방식으로 클래스 추가해주는 경우 - 주의할 점

  • 기존에 있던 클래스 없어지지 않도록 + 해주는 작업 필요.
  • 스페이스바 해서 추가 필요! ( 그냥 해버리면 기존 클래스 네임 testst-1으로 추가됨-> test st-1)

 

 


 

 

3. is()

  • 조건에 맞는지 체크하는 함수
  • 반환 값은 true / false

 

 

 

 

요소.is('.isTest') - 클래스 이름이 isTest가  맞는지 체크

  • div태그애들 하나하나 다 가져올 것이다
  • 하나하나 - 클래스가 .isTest 가 맞는지 체크 – 반환 값은 true/false나온다.
  • elem 제이쿼리 요소로 변경 필요.
  • elem 대신 this로 사용해도 결과 같다.

 

 

 

 


 

 

 

2. 이벤트 부여 관련 함수

 

 

2-1. on()

  • 이벤트 걸기
  • 여러 개 한 번에 걸기
  • 자식들에게 이벤트 걸기

 

 

#이벤트 거는 방법

  • 요소.on(이벤트, 함수)
  • 요소.이벤트(함수)

 


#이벤트 여러 개 한 번에 걸기

  • on() 함수로 이벤트 동시 처리하는 방법은 on( { } ) 
  • on() 함수의 파라미터로 - 객체를 넣어준다.
  • 객체로 - key:value 형식으로 전달 - 
  • key = 이벤트 / value = 함수
  • { 이벤트 : function(){} , 이벤트:functioin{} ~~ }

 

 

#실습 : 위의 2개(( 3번 4번 ) 이벤트 한 번에 처리

  • temp 객체를 만들어서 on() 함수의 파라미터로 넣어주기
  • temp대신 { } 부분 넣어줘도 동일하다. 

 

 


#자식들에게 이벤트 걸기

 

- 세팅해놓고

 

 


 

- 이벤트 걸어서 테스트

  • .on('click', '자식태그', 함수)
  • h1태그와 h2태그에 각각 click이벤트 와 함수 적용됨
  • 안녕을 클릭하면 <h1>안녕</h1> 기준으로 함수 실행
  • 하이를 클릭하면 <h2>하이</h2> 기준으로 함수 실행

 

 


2-2 off()

  • 이벤트 제거

 


 

2-3 one()

  • 한 번만 실행되는 일회용 이벤트 생성
  • 한 번 실행되고 나면 더 이상  실행 안됨.

 

 

 

 


 

 

## 최초에 존재하지 않았지만 동적으로 내가 만든 애들에게 이벤트 걸어줄 때는

## on() 이나 one()이러한 방식으로 걸어주어야 한다.

 

 

 

 


 

 

 

3. 마우스 이벤트 

  • 마우스 이벤트 종류 많다. 실습 한 번씩 해보기

 

 

 

 

#click 보다는 mouseup으로 처리하는 경우 많다.

  • 마우스 클릭하는 순간이 아니라 클릭하고 떼기 전에 다른 곳으로 옮기면 클릭 처리 안된다
  • 이게 mouseup! - 누른 장소와 떼는 장소 같으면 처리

 

 

 

 


 

 

 

 

4. 키보드 이벤트 

 

 

1. keyup()

  • 키보드가 띄어졌을 때 (keyup)이 되었을 때 이벤트 발생
  • ex) 사람인 글자 수 세기 / 맞춤법 검사기

 

 

2. keydown()

  • 키보드가 눌렸을 때 (keydown)이 되었을 때 이벤트 발생

 

 

3. val().length

  • 글자 수 알아내기

 

 

 

 

 

 


 

 

 

 

5. 애니메이션

 

1. hide() - 숨기기

2. show() - 보여주기

3. toggle() - 누를 때마다 상태가 바뀜 (넘락/스크롤락/한영키/같은)


4. fadeIn () - 서서히 숨기기

5. fadeOut() - 서서히 보여주기

6. fadeToggle() - 누를 때마다 반대의 상태로 전환


7.slideDown() - 내려가면서 보여줌

8.slideUp() - 올라가면서 보여줌

9.slideToggle() - 누를 때마다 반대의 상태로 전환해줌

 


 

## 파라미터 값을 부여해주면  ms단위로  어느정도 시간에 걸쳐 작동할지 지정 가능