• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Event] JQ - trigger() 메서드 ★ - 지정 이벤트 수동 촉발과 이벤트 기본동작 수행. (= trigger메서드 = 트리거메서드) ※ isTrigger 속성.

목차
  1. trigger() 예제 - select 이벤트 촉발시키기
  2. trigger() 정의
  3. trigger() 구문
  4. trigger() 예제 - 사용자 정의 이벤트에 매개변수 전달하기
  5. trigger() 예제 - cf. triggerHandler() 메서드
  6. isTrigger 속성 - trigger()인지, triggerHandler()인지 체크

 

trigger() 예제 - select 이벤트 촉발시키기

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $("input").select(function(){

    $("input").after(" Homzzang.com");

  });

  $("button").click(function(){

    $("input").trigger("select");

  });

});

</script>


<input type="text" value="홈짱닷컴"><br><br>

<button>클릭</button>

 

결과보기

PS. 주의: 1회 클릭 시 기본 동작 여러 번 실행될 수도 있음.

 

trigger() 정의

 

선택 요소에 대해 지정 이벤트 수동 촉발 및 이벤트 기본 동작 수행.

 


cf. trigger() vs. triggerHandler() 메서드 차이점.

 

trigger() 메서드

  • 이벤트 촉발 O
  • 이벤트 기본 동작 수행 O.
  • DOM 구조 따라 이벤트 확산 O.

 

triggerHandler() 메서드

  • 이벤트 촉발 O :  trigger() 메서드와 동일한 점.
  • 이벤트 기본 동작 수행 X.
  • DOM 구조 따라 이벤트 확산 X

 

PS. 공식 매뉴얼 좌표.

https://api.jquery.com/trigger/

https://api.jquery.com/triggerHandler/

 

 

trigger() 구문

 

$(selector).trigger(event,[param1,param2,...])

 


[매개변수]

 

event

필수. 선택 요소에 대해 촉발시킬 이벤트 지정.

 

[param1,param2,...]

선택. 이벤트 핸들러에 전달할 추가적인 매개변수.

※ 커스텀 (= 사용자 정의) 이벤트 제어에 유용함.

[주의] 반드시 전달할 매개변수를 대괄호로 묶어야 함.

(∵ 대괄호로 안 묶으면, 맨 처음 매개변수만 전달됨.)

 

 

trigger() 예제 - 사용자 정의 이벤트에 매개변수 전달하기

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $("p").click(function(){

    $("p").on("hz", function(event, site, host, open){

      alert(site + "\n" + host + "\n" + open);

    });

    $("p").trigger("hz", ['홈짱닷컴', 'Homzzang.com', '2012']);

  });

});

</script>


<p>클릭</p>

 

결과보기

 

trigger() 예제 - cf. triggerHandler() 메서드

[예제1]

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $("input").select(function(){

    $("input").after(" Homzzang.com");

  });

  $("#btn1").click(function(){

    $("input").trigger("select");

  });

  $("#btn2").click(function(){

    $("input").triggerHandler("select");

  });

});

</script>


<p><input type="text" value="홈짱닷컴"></p>


<button id="btn1">trigger()</button>

<button id="btn2">triggerHandler()</button>

 

결과보기 


[예제2]

 

※ trigger() : 가장 마지막 input 배경색이 바뀜.

※ trggerHandler() : 클릭한 button 배경색이 바뀜. 

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $("button:eq(0)").click(function(){

    $("input[type]").trigger("focus");

  })

  $("button:eq(1)").click(function(){

    $("input[type]").triggerHandler("focus");

  })

})

</script>


<style>

:focus {background:yellow}

</style>

 

<button>trigger</button>

<button>triggerHandler</button>

<br><br>

<input type="text">

<input type="text">

<input type="text">


결과보기 


[예제3]

 

※ trigger() : P, DIV 각각 첫 번째 배경색이 바뀜.

※ trggerHandler() : P 첫 번째만 배경색이 바뀜.

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $('p,div').select(function(){

    $(this).css('background','yellow');

  })

  $("button:eq(0)").click(function(){

    $('p,div').css('background','transparent');

    $("[class*=1]").trigger("select");

    

  })

  $("button:eq(1)").click(function(){

    $('p,div').css('background','transparent');

    $("[class*=1]").triggerHandler("select");    

  })

})

</script>


<button>trigger</button>

<button>triggerHandler</button>

<br><br>

<p class='p1'>첫번째 P</p>

<p class='p2'>두번째 P</p>

<p class='p3'>세번째 P</p>

<p class='p4'>네번째 P</p>

<div class='p1'>첫번째 DIV</div>

<div class='p2'>두번째 DIV</div>

<div class='p3'>세번째 DIV</div>

<div class='p4'>네번째 DIV</div>


결과보기 

 

isTrigger 속성 - trigger()인지, triggerHandler()인지 체크

 

trigger() 인지, tirggerHandler() 인지 체크.

 


 

※ isTrigger 값이 2이면, tirggerHandler()

※ isTrigger 값이 3이면, trigger

 


[예제]

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>

$(document).ready(function(){

  $('p,div').select(function(e){

    $('p,div').css('background', '');

    $("button:eq(2)").triggerHandler('click');

    console.log(e.isTrigger);

    // triggerHandler

    if (e.isTrigger == 2) {

        $('p,div').filter('[class*=1]').css('background','yellow');

    }

    // trigger

    if (e.isTrigger == 3) {

        $('p,div').eq(0).css('background','yellow');

    }

  })

  $("button:eq(0)").click(function(){

    $("[class*=1]").trigger("select");    

  })

  $("button:eq(1)").click(function(){

    $("[class*=1]").triggerHandler("select");    

  })

  $("button:eq(2)").click(function(){

    $("*").css("background", '');    

  })    

})

</script>


<button>trigger</button>

<button>triggerHandler</button>

<button>reset</button>

<br><br>

<p class='p1'>첫번째 P</p>

<p class='p2'>두번째 P</p>

<p class='p3'>세번째 P</p>

<p class='p4'>네번째 P</p>

<div class='p1'>첫번째 DIV</div>

<div class='p2'>두번째 DIV</div>

<div class='p3'>세번째 DIV</div>

<div class='p4'>네번째 DIV</div>

<div class='p1'>첫번째 DIV</div>

 

결과보기

Big1 님 (210326) https://sir.kr/qa/405744



분류 제목
Effect JQ - slideToggle() 메서드 ★★★ - slideUp() 메서드와 slideDown() 메서드를…
Effect JQ - slideUp() 메서드 - 선택요소를 위로 슬라이드해 숨기기. (= slideUp메서드 = 슬라이…
Effect JQ - stop() 메서드 - 선택요소에 대해 현재 실행중인 애니메이션 중지 (= stop메서드 = 스톱메…
Effect JQ - toggle() 메서드(effect경우) ★★★★★ - 보이기/숨기기 상호전환. (= toggle메…
HTML_CSS JQ - addClass() 메서드 ★ - 선택요소에 하나 또는 그 이상의 class 명을 추가
HTML_CSS JQ - after() 메서드 - 선택요소 뒤에 내용 추가. (= after메서드 = 애프터메서드)
HTML_CSS JQ - append() 메소드 ★★★ - 선택요소 안 끝부분에 내용 삽입 (= append메서드 = 어펜드…
HTML_CSS JQ - appendTo() 메소드 - 선택요소 안 끝에 HTML 요소삽입 (= appendTo메서드 = 어…
HTML_CSS JQ - attr() 메서드 ★★★ - 속성값 설정/반환 (= attr메서드 = 어트르 메서드 = 어트리…
HTML_CSS JQ - before() 메서드 - 선택요소 앞에 내용 삽입
HTML_CSS JQ - clone() 메서드 - 선택요소 복사본 만들기 (= 선택요소복사 = clone메서드 = 클론메서드…
HTML_CSS JQ - detach() 메서드 - 선택요소제거. (※ 데이터 및 이벤트는 유지됨).
HTML_CSS JQ - empty() 메서드 - 선택요소의 모든 자식노드와 내용 제거. (= 비우기 = empty메서드 =…
HTML_CSS JQ - hasClass() 메서드 ★★★ - 선택요소가 지정 클래스명 가지고 있는지 검사. (= 지정 클래…
HTML_CSS JQ - height() 메서드 - 높이 설정/반환. (= height메서드 = 하이트메서드)
HTML_CSS JQ - html() 메서드 ★ - 선택요소의 내용설정/내용변경/내용반환 (= html메서드 = 에이치티엠엘…
HTML_CSS JQ - innerHeight() 메서드 - 높이 반환 (height + padding) (= innerHe…
HTML_CSS JQ - innerWidth() 메서드 - 선택요소 너비 반환 (※ padding 포함 O , border …
HTML_CSS JQ - insertAfter() 메서드 ★ - 선택요소 뒤에 요소삽입/요소추가. (= insertAfter…
HTML_CSS JQ - insertBefore() 메서드 - 선택요소 앞에 요소삽입/요소추가. (= insertBefore…
9/15
목록
찾아주셔서 감사합니다. Since 2012