개발이야기/jQuery

[jQuery] trigger() 메서드 사용법, 예제 (이벤트 강제발생)

후린개발자 2023. 11. 3.
반응형

trigger() 메서드는 특정 이벤트를 강제로 발생시키는 데 사용됩니다. DOM 요소에서 이벤트 핸들러를 호출하거나 사용자 지정 이벤트를 트리거할 때 유용합니다.

 

 

사용법

$(선택자).trigger(이벤트_이름);

 

$(선택자): 이벤트를 발생시킬 대상 요소를 선택합니다.

이벤트_이름: 발생시키려는 이벤트의 이름을 나타냅니다. 이벤트 이름은 문자열로 제공됩니다.

 

 

$("#myButton").click(function() {
	$("#anotherElement").trigger("click");
});

 

위 예제에서 #myButton은 클릭 이벤트를 처리하며, 해당 버튼을 클릭할 때 #anotherElement에 대한 클릭 이벤트가 발생합니다.

 

 

소스코드 및 설명

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
	<button id="myButton">버튼 클릭</button>
	<p id="message">버튼을 클릭해보세요.</p>
	<hr>
	<input type="text" id="myInput">
	<p id="message1"></p>
	
	<hr>
	<button id="myButton2">버튼 클릭</button>
	<p id="message2"></p>

	<script>
		$(document).ready(function() {
		  /* 강제 클릭 이벤트 발생 */
		  $("#myButton").click(function() {
			$("#message").text("버튼이 클릭되었습니다.");
		  });

		  // 버튼 클릭 이벤트를 강제로 발생
		  $("#myButton").trigger("click");
  		  /* 강제 클릭 이벤트 발생 */


		  /* 입력 필드 값 변경 이벤트 트리거 */
		  $("#myInput").on("valueChanged", function() {
			$("#message1").text("입력값이 변경되었습니다.");
		  });
		  // 입력 필드의 값이 변경될 때 "valueChanged" 이벤트 트리거
		  $("#myInput").on("input", function() {
			$(this).trigger("valueChanged");
		  });
		  /* 입력 필드 값 변경 이벤트 트리거 */

          /* 강제 클릭 이벤트 발생 후 데이터 전달  */
		  $("#myButton2").click(function(event, data) {
			$("#message2").text("이벤트 데이터: " + data.myData);
		  });

		  // 버튼 클릭 이벤트를 강제로 발생하고 데이터 전달
		  $("#myButton2").trigger("click", { myData: "사용자 지정 데이터" });
		  /* 강제 클릭 이벤트 발생 후 데이터 전달  */
		});
	</script>
</body>
</html>

 

 

1. 강제 클릭 이벤트 발생

$("#myButton").trigger("click"); 를 통해서 myButton 버튼을 강제로 클릭 이벤트를 발생시키고 myButton 클릭 이벤트 핸들러가 실행되면서 message 엘리먼트의 텍스트를 버튼이 클릭되었습니다.로 업데이트합니다.


2. 입력 필드 값 변경 이벤트 트리거

$("#myInput").on("valueChanged", function() { ... }): myInput 입력 필드에서 valueChanged라는 사용자 정의 이벤트를 정의하고, 이벤트가 발생하면 message1 엘리먼트의 텍스트를 업데이트합니다.


$("#myInput").on("input", function() { ... }): myInput 입력 필드에서 발생하는 input 이벤트를 사용하여, 입력 필드의 값이 변경될 때 valueChanged 이벤트를 강제로 발생시킵니다.


3. 강제 클릭 이벤트 발생 후 데이터 전달

$("#myButton2").click(function(event, data) { ... }): myButton2 버튼 클릭 이벤트 핸들러를 정의하고, 이벤트 핸들러는 데이터 객체 data를 받아와 message2 엘리먼트의 텍스트를 데이터와 함께 업데이트합니다.


$("#myButton2").trigger("click", { myData: "사용자 지정 데이터" });: myButton2 버튼을 클릭 이벤트를 강제로 발생시키면서 사용자 지정 데이터를 이벤트 핸들러에 전달합니다.

 

 


 

소스코드 결과

 

반응형

댓글

💲 추천 글