! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

이벤트 발생 시기 조정 > Q&A | 토론

본문 바로가기

PureJS 이벤트 발생 시기 조정

페이지 정보

작성자 팬더곰 작성일 2023-06-27 08:57 조회 369회 댓글 1건
제품 버전 : 5.20231.888
컨트롤 이름 : wijmo.nav.TreeView

본문

안녕하세요. 

tree에서 초기값을 설정할때는 checkedItemsChanged 이벤트가 발생하지 않고, 나중에 사용자가 check 했을 경우에만 이벤트가 실행되도록 할 수 있을까요?



node.isChecked = true;


로 초기값을 설정하고 그 이후에 아래처럼 이벤트를 등록했습니다.


tree.checkedItemsChanged.addHandler(function (s, e) {

    console.log('tree checkedItemsChanged');

});


문제는, 이벤트를 등록하는 시점에, 해당 이벤트가 실행됩니다.



감사합니다.

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

팬더곰님의 댓글

팬더곰 작성일

호이스팅때문인거 같은데요. 혹시 방법이 있을까요?

2 답변

PureJS Re: 이벤트 발생 시기 조정

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK루시 작성일 2023-06-27 14:15 댓글 1건

본문

안녕하세요 그레이프시티입니다.


문의하신 TreeView의 checkedItemsChanged 이벤트에 대해서 안내 드립니다.


먼저 TreeNode의 isChecked로 체크 상태를 설정할 경우, TreeView의 checkedItemsChanged를 호출하게 됩니다. 따라서 초기화에서 해당 이벤트를 방지하는 것이 아닌 아래 코드와 같이 별도 변수를 두어 초기화 상태인지 유무를 확인하는 조건 추가 후, 특정 코드가 초기화 상태에서는 실행되지 않도록 구현해보시기 바랍니다.

 

var isInit = true;
(...)
tree.checkedItemsChanged.addHandler(function (s, e) {
    if(isInit === true){
      isInit = false;
    } else {
      console.log('tree checkedItemsChanged');
      // 코드 설정
    }
  });


다른 궁금한 점이 생기면 문의주시기 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

팬더곰님의 댓글

팬더곰 작성일

이 방법으로 하면 콜백 때문에 실행 순서가 틀어져서 문의 드린거였는데,  방법이 없는거군요.  

PureJS Re: 이벤트 발생 시기 조정

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK루시 작성일 2023-06-28 10:14 댓글 0건

본문

안녕하세요 그레이프시티입니다.


만일 해당 이벤트를 사용하는 이유가 체크박스 클릭 감지라면  checkedItemsChanged와 별도로 TreeView hostElement에 클릭 이벤트를 추가하는 방법도 있습니다. 아래 코드와 같이 사용자가 TreeView의 체크박스 클릭 시 타겟의 유형이 체크박스인지 확인 후, 코드를 실행하게 구현하실 수 있으며 참고 부탁드립니다.


tree.hostElement.addEventListener("click",function(e){
  if(e.target.type ==="checkbox"){
    console.log("체크박스 클릭")
  }
})


다른 궁금한 점이 생기면 문의주시기 바랍니다.


감사합니다.

그레이프시티드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.