2011-08-26 5 views
0

jstree를 사용 중입니다. 확인란 상태 변경 이벤트를 캡처하려고합니다. 현재 선택된 체크 박스의 상태와 그 목록 ID를 얻으려면 어떻게해야합니까?체크 박스 클릭 이벤트를 캡처하는 방법은 무엇입니까?

여기에 나와있는 예제는 다음과 같습니다. Jquery Jstree checkbox events capture 하지만 노드 상태를 확인하는 방법을 알 수 없습니다. 더 나은 방법이나 간단한 방법이 있다면 나는 다른 제안을 할 수 있습니다.

$("#demo1").bind("change_state.jstree", function (e, d) { 
     if ((d.args[0].tagName == "A" || d.args[0].tagName == "INS") && 
      (d.inst.data.core.refreshing != true && d.inst.data.core.refreshing != "undefined")) 
     { 
      //if a checkbox or it's text was clicked, 
      //and this is not due to a refresh or initial load, run this code . . . 
      alert("list id: " +d.rslt.attr("id")); 
      alert("is item checked?" +"***TODO***"); 
     } 
    }); 

감사합니다.

** 편집 : 플러그인을 결합하는 것에 대한 혼란을 피하기 위해 제 질문을 명확하게 나타 냈습니다 (이것이 내가하는 일이 아닙니다). jstree 내에서 트리 체크 박스를 활성화했습니다. **

+0

해결책을 찾았습니까? 나는 같은 문제에 직면하고있다. plz 도움. – Shibankar

답변

0

해결책이 없으면 해결할 수 있습니다! 나는 비슷한 문제에 대한 해결책을 찾고이 게시물을 발견 다양한 시나리오와 함께 연주 후

real_checkboxes

옵션을 사용하지 않기로 결정했다. 대신 일련의 숨겨진 체크 박스를 추가하고 스크립트를 수정하여 숨겨진 상자의 검사 상태를 설정 한 다음 양식의 서버 (MVC3)에 다시 게시합니다. 그런 다음 트리 노드 LI의 ID를 사용하여 내 확인란의 선택 상태를 설정할 수 있습니다.

if ((d.args[0].tagName == "A" || d.args[0].tagName == "INS") && 
     (d.inst.data.core.refreshing != true && d.inst.data.core.refreshing != "undefined")) { 
      //if a checkbox or it's text was clicked, 
      //and this is not due to a refresh or initial load, run this code . . . 
      var id = d.rslt.attr("id"); 
      var checked = $("#" + id + ".jstree-checked").length!=0; // use the length!=0 to get a bool of the checked status 
      $("#log").append("list id: " + id); 
      $("#log").append("is item checked ? " + checked); 
      $("#log").append("<br/>"); 


     } 
관련 문제