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

[Event] JQ - 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. :  trigger() 메서드와 동일한 점.

② 이벤트 기본 동작 수행 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


방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
HTML_CSS JQ - insertBefore() 메서드 - 선택요소 앞에 요소삽입/요소추가. (= insertBefore…
HTML_CSS JQ - offset() 메서드 ★ - 오프셋 (=xy좌표) 설정/반환. (= offset메서드 = 오프셋메…
HTML_CSS JQ - outerHeight() 메서드 - 요소 높이 반환 (height + padding + border…
HTML_CSS JQ - outerWidth() 메서드 - 요소 너비 반환 (※ padding, border 둘다 포함) (…
HTML_CSS JQ - position() 메서드 - 부모요소 기준으로 요소 위치 반환 (= position메서드 = 포지…
HTML_CSS JQ - prepend() 메서드 - 선택요소 안 시작부분에 내용 삽입 (= prepend메서드 = 프리펜드…
HTML_CSS JQ - prependTo() 메서드 - 선택요소 시작부분에 HTML 요소삽입 (= prependTo메서드 …
HTML_CSS JQ - prop() 메서드 - 속성과 속성값 설정/반환. (= prop메서드 = 프랍메서드 = 프롭메서드)…
HTML_CSS JQ - remove() 메서드 - 선택요소 제거 (= remove메서드 = 리무브 메서드)
HTML_CSS JQ - removeAttr() 메서드 - 1개 이상의 속성 제거 (= removeAttr메서드 = 리무브어…
HTML_CSS JQ - removeClass() 메서드 ★ - 클래스 제거 (= removeClass메서드 = 리무브클래스…
HTML_CSS JQ - removeProp() 메서드 - prop() 메서드로 설정된 속성 제거. (= removeProp…
HTML_CSS JQ - replaceAll() 메서드 - 선택요소를 새 HTML 요소로 대체 (= replaceAll메서드…
HTML_CSS JQ - replaceWith() 메서드 ★ - 선택요소 내용를 새 내용으로 대체/변경 (= replaceW…
HTML_CSS JQ - scrollLeft() 메서드 - 선택요소 가로 스크롤바 위치 설정/반환 (= scrollLeft메…
HTML_CSS JQ - scrollTop() 메서드 ★ - 선택요소 세로 스크롤바 위치 설정/반환 (= scrollTop메…
HTML_CSS JQ - text() 메서드 - 선택요소 텍스트 내용설정/내뇽변경/내용반환. (= text메서드 = 텍스트메…
HTML_CSS JQ - toggleClass() 메서드 ★★★ - 클래스추가/제거 상호전환. (= toggleClass메서…
HTML_CSS JQ - unwrap() 메서드 - 부모요소 제거 (= unwrap메서드 = 언랩 메서드)
HTML_CSS JQ - val() 메서드 ★★★ - value속성 값설정/값반환 (= val메서드 = 밸메서드) ※ 밸류메…
10/15
목록
찾아주셔서 감사합니다. Since 2012