다른 이벤트로 적용한 효과를 제거 후 실행시키려면?

다른 이벤트로 적용한 효과를 제거 후 실행시키려면?

QA

다른 이벤트로 적용한 효과를 제거 후 실행시키려면?

답변 2

본문

https://codepen.io/sinbi/pen/bGgEMJb

 

예를 들어,

trigger() 버튼 클릭 시 2개가 선택되는데,

triggerHandler() 버튼 클릭 시 1개만 선택 되게 하려면?

반대로,

triggerHandler() 버튼 클릭 시 1개만 선택되는데,

trigger() 버튼 클릭 시 2개 선택되게 하려면 어떻게 해야 하는지?

 

이 질문에 댓글 쓰기 :

답변 2

event.isTrigger 로

trigger인지 triggerHandler인지 구분은 가능합니다만,

2: triggerHandler

3: trigger

결국 셀렉터의 문제로 귀결되네요

트리거를 걸기전에 셀렉터를 골라내고

trigger를 쓸건지 triggerHandler를 쓸건지

결정해야할 것 같습니다

 


  $('p,div').select(function(e){
    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');
    }
  });

답변 감사합니다.
덕분에 좋은 팁 하나 배웠습니다.

근데, 예제 코드로 바꿔봐도 변화가 없네요.
콘솔에 찍어보니 숫자는 제대로 들어오는데...
https://codepen.io/sinbi/pen/bGgEMJb

아래처럼 무식한 방법으로 대충 해결했네요.ㅎ
https://codepen.io/sinbi/pen/BapjPvr

trigger와 triggerHandler의 기능 차이가 있는 것 같습니다.

 

https://stackoverflow.com/questions/3772537/triggerhandler-vs-trigger-in-jquery

답변 감사합니다.
차이가 있는 건 아는데, 예제 코드를 좀 더 개선해볼까 해서요.
클릭 시, 다른 버튼이 클릭한 효과 제거해주는 게 궁금합니다.

보통의 다른 예제는 서로 자동 교환되던데,
위 예제는 이상하게 안 바뀌네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 7
© SIRSOFT
현재 페이지 제일 처음으로