97 of 119 menu

on 메서드

on 메서드를 사용하면 요소에 이벤트 핸들러를 추가할 수 있습니다. 핸들러를 제거하려면 off 메서드를 사용하면 되고, 이벤트가 한 번만 발생한 후 핸들러가 스스로 제거되도록 하려면 one 메서드를 사용하세요. 핸들러를 바인딩하는 요소는 on를 호출할 때 존재해야 합니다.

문법

요소에 이벤트 핸들러를 추가하는 방법입니다. 첫 번째 매개변수로 문자열 형태로 하나 또는 공백으로 구분된 여러 개의 이벤트를 전달하고, 두 번째 매개변수로 요소 내부의 자손을 필터링하는 추가적인 선택자를 전달하며, 세 번째 매개변수로는 추가적인 데이터를 전달합니다. 이 데이터는 이벤트 발생 시 event.data 속성으로 핸들러에 전달됩니다. 두 번째와 세 번째 매개변수는 선택 사항입니다. 네 번째로는 이벤트 핸들러 함수를 전달하며, 이 함수에는 이벤트 객체와 선택적인 추가 매개변수가 전달됩니다. 만약 핸들러 함수 대신 false를 전달하면, 함수는 단순히 false를 반환합니다:

$(selector).on(events, [selector], [data], handler(eventObject, [additionalParameters]));

on 메서드를 다른 방식으로 사용할 수도 있습니다. 이 경우 첫 번째 매개변수로 JavaScript 객체를 전달하며, 객체의 키는 이벤트 유형이고 값은 해당 이벤트에 대해 호출되는 핸들러 함수입니다:

$(selector).on({'event type': handler}, [selector], [data]);

추가적인 선택자를 전달하지 않으면, 이벤트는 핸들러를 연결한 요소에서 발생합니다. 그렇지 않은 경우, 이벤트는 이 선택자와 일치하는 자손 요소에서 발생합니다 (위임된 이벤트). 동일한 이벤트 핸들러는 여러 번 요소에 바인딩될 수 있습니다.

예제

#test가 있는 단락을 클릭했을 때 그 텍스트를 alert에 표시해 봅시다. 다른 단락을 클릭해도 아무런 일도 일어나지 않습니다:

<p>text1</p> <p id="test">text2</p> <p>text3</p> $('#test').on('click', function() { alert( $(this).text() ); });

예제

단락을 클릭했을 때 on 메서드에 전달한 데이터를 출력해 봅시다. 우리가 만든 핸들러 함수 testFunc를 사용하겠습니다:

<p>click</p> function testFunc(event) { alert(event.data.text); } $('p').on('click', {text: 'aaa'}, testFunc);

함께 보기

  • 요소에서 이벤트 핸들러를 제거할 수 있는 메서드 off
  • 이벤트가 한 번만 발생하고 핸들러가 자동으로 제거되도록 하는 메서드 one
  • 이벤트 정보를 담고 있는 객체 event
  • 지정된 유형의 이벤트에 대해 요소에 바인딩된 모든 핸들러를 실행할 수 있게 하는 메서드 trigger
  • 함수에 컨텍스트를 바인딩할 수 있는 JavaScript 메서드 bind
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부