메뉴 건너뛰기

조회 수 635 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

클릭 이벤트를 처리하고자 할때, jQuery를 통해 보다 쉽게 이벤트를 정의할 수 있습니다.

on()click()bind()onclick()등 여러가지 방법이 있는데, 제가 주로 사용하는 on()과 click()의 차이에 대해 알아보겠습니다.

 

 

click()

단순하게 정적페이지에 로드된 요소에 클릭이벤트를 처리하고자 할때 click()메소드를 자주 사용합니다. 해당 클릭이벤트는 동적처리가 불가능합니다.

 

다음 예제를 확인해보겠습니다.

 

 

 

name속성이 save인 button요소를 클릭하면 click()이벤트 처리로 body태그에 click!!!을 찍어냅니다.

 

 

on()

이번엔 on() 메소드입니다.

on() 메소드는 주최가 되는 부모속성의 이벤트를 물려받아서 지정 선택자에게 이벤트를 연결할 수 있습니다.

물론 잘 못사용하면 click()이벤트처럼 정적으로 사용이 되므로 부모속성을 이용하여 처리한다는 이부분을 참고하셔야 합니다.

바로 예제를 확인해보겠습니다.

 

 

 

ready안에 동작을 간단하게 설명해자면 HTML 내 클릭한 대상이 name값으로 add를 가지는 버튼 태그이면 body태그에 "+버튼"을 생성하는 예제입니다.

적용한 on()메소드의 파라미터를 확인해보겠습니다.

1. 첫번째 파라미터에는 행위(click, change, keypress 등)를 지정합니다. 이번 예제에서는 클릭을 처리하고 싶으므로 "click"으로 지정합니다.

 

2. 두번째 파라미터에는 지정자를 선택할 수 있습니다. name의 속성이 add인 버튼에 이벤트를 지정하고 싶으므로

"button[name='add']"으로 처리했습니다.


3. 세번째 파라미터는 구현부입니다. 콜백 메소드로 지정한 행위가 일어나면 콜백메소드에 정의한 내용이 동작합니다. body태그에 name속성이 add인 버튼을 생성하도록 append처리하였습니다.

 

 

동적으로 생성된 버튼도 동일한 동작을 한다.

 

 

 

동적으로 이벤트가 전부 할당되어 정상 동작하는 것을 볼 수 있습니다.

 

 

 

그럼 동적으로 처리하고자 할 때 잘못된 표현방법은 무엇일까요?

$("button[name='add']").on("click", function () {
    $("body").append("<button name='add'>+</button>");
});

부모요소가 name값이 add인 버튼에 바로 클릭이벤트를 처리하였습니다.

 

결과는 아래와 같습니다.

 

추가로 생성된 버튼은 동작하지 않는다.

 

이번엔 동일하게 on()메소드를 활용하였지만 동적으로 생성된 버튼은 동작하지 않습니다.

 

당연하게도 문서가 첫 로드되면서 이벤트는 현재 로드된 요소 중 name값이 add인 첫번째 버튼에만 클릭이벤트가 처리되고 이후에 동적으로 생성된 데이터는 연결되지 않았기 때문입니다.

 

이 부분을 유의해서 처리하시면 언제든지 동적으로 클릭이벤트뿐만 아니라 키이벤트 마우스이벤트등을 처리 할 수 있습니다.


  1. No Image 25Mar
    by
    2021/03/25 Views 322 

    기본 동작 막기

  2. jQuery - 드래그앤드롭(DragAndDrop)을 통한 파일 업로드

  3. jQuery - checkbox 전체 선택, 해제 기능 및 단일 체크박스가 해제되었을때 전체 선택 해제 하기

  4. jQuery - ajax xhr을 활용한 파일 업로드 진행 상태 확인하기

  5. jQuery - 드래그, 리사이즈 이벤트에 따른 영역 침범 막기

  6. 09Mar
    by 조쉬
    2021/03/09 Views 635 

    jQuery - 클릭이벤트 동적 처리하기($("").click(), on('click') 차이)

  7. jQuery - radio, checkBox값 가져오기, 선택하기, 제어 등

  8. No Image 09Mar
    by
    2021/03/09 Views 1546 

    jQuery - ajaxSubmit 사용법 및 유의사항(페이지 리로드 현상)

  9. No Image 25Nov
    by
    2020/11/25 Views 1543 

    이미지 회전, rotate();

  10. No Image 25Nov
    by
    2020/11/25 Views 1059 

    이미지 확대/축소

  11. No Image 24Aug
    by
    2020/08/24 Views 1005 

    사업자 번호를 입력하면 자동으로 하이픈을 붙여줍니다.

  12. No Image 27Aug
    by
    2019/08/27 Views 1784 

    jquery 자식창에서 부모창으로 값 전달

  13. No Image 04Jun
    by
    2019/06/04 Views 894 

    jQuery 일반적 팁

  14. No Image 04Jun
    by
    2019/06/04 Views 791 

    JS 타이머 샘플

  15. No Image 04Jun
    by
    2019/06/04 Views 831 

    JS 날짜 자료 비교

  16. No Image 04Jun
    by
    2019/06/04 Views 895 

    텍스트 필드에 기본글이 마우스 클릭하면 지워지게 하기 폼필드 소스 내에 아래 태그를 삽입한다.

  17. No Image 04Jun
    by
    2019/06/04 Views 841 

    //ex)텍스트 박스 포커스 활성, 비활성 이벤트

  18. No Image 04Jun
    by
    2019/06/04 Views 746 

    JS 첵박스 샘플

  19. No Image 04Jun
    by
    2019/06/04 Views 838 

    체크박스 전체선택/해지

  20. No Image 21May
    by
    2019/05/21 Views 3156 

    jquery 드래그 앤 드롭 파일 업로드

Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved