2014-04-22 1 views
2

jstree를 잠시 사용하고 있지만 여전히 핸들을 얻을 수는 없지만 두통이 심하지 만 잘 작동하도록 결정되었습니다. . 사용중인 데이터는 HTML (JSON이 관련되지 않음)에서 가져옵니다. 내가 가지고있는 문제는 일부 노드가 폴더가 아닌 노드를 설정하는 방법을 잘 모르겠다는 것입니다. 모든 노드에는 클래스가 있으며 해당 클래스를 기반으로 아이콘을 변경할 수 있지만 사용자가 폴더로 지정되지 않은 노드를 보낼 수 있으면 아이콘을 변경할 수 있습니다. 한 가지 방법이나 다른 방법으로이를 방지해야합니다. 그러나 지금까지 테스트 한 모든 것이 전혀 작동하지 않습니다.jstree가 노드를 자식 노드로 이동하지 못하도록

$("jstree").jstree({ 
      "core": { 
       "animation": 0, 
       "check_callback": true 
      }, 
      rules: { draggable: "all" }, 
      "dnd": { 
       "drop_finish": function (data) { 
        if (data.o.attr("rel") === "ds") { 
         //update chart with new data here? 
         //using data.o.attr("id") 
        } 
       }, 
       "drag_check": function (data) { 
        if (data.r.attr("rel") != "ds") { 
         return false; 
        } 
        return { 
         after: false, 
         before: false, 
         inside: true 
        }; 
       } 
      }, 
      "crrm": { 
       "move": { 
        "check_move": function (data) { 
         // alert(data.r.attr("id")); 
         if (data.r.attr("id") == "999") { 
          return false; 
         } 
         else { 
          return true; 
         } 
        } 
       } 
      }, 

      "plugins": ["dnd", "crrm"] 
     }); 

그건 내 나무를 만들기 위해 사용하는 것입니다. 또한 사용자가 원한다면 일부 항목을 이동해야하므로 끌어서 놓기를 비활성화 할 수는 없지만 폴더가 아닌 다른 항목으로 끌어서는 안됩니다. 도움에 미리

감사합니다,

감사합니다,

아드리안.

답변

1

Types 플러그인 jstree plugins을 사용하여이 작업을 수행했습니다. 여기서 노드의 유형을 정의하고 어떤 유형이 어린이가 될 수있는 변수 인 valid_children을 설정할 수 있습니다. 즉, 사용자는 제한 유형의 노드를 노드로 DnD 할 수 없습니다.

아래 예제에서 "폴더"와 "파일"노드를 가질 수있는 "책"유형이 있습니다. valid_children은 비어있는 것으로 정의되었으므로 "파일"유형에는 하위 항목이 전혀 없을 수 있습니다. 새로운 노드

tree.create_node("#", { 
     "text" : "sample node", 
     "type" : "file" 
     }); 

set_type 또는 함수를 사용하여

추가시
$('#' + tree_id) 
    .jstree({ 
    'core' : { 
     'check_callback' : true, //needed to enable create, remove, rename... events 
     "themes" : { 
     "stripes" : true 
     } 
    }, 
    "types" : { 
     "book" : { 
     "valid_children" : ["folder", "file"], 
     "icon" : "img/1397762742_book.png" 

     }, 
     "folder" : { 
     "valid_children" : ["folder", "file"], 
     "icon" : "img/1397751666_folder.png" 

     }, 
     "file" : { 
     "valid_children" : [], 
     "icon" : "img/1397752227_page.png" 
     } 
    }, 
    "contextmenu" : { 
     "items" : customMenu 
    }, 
    "plugins" : ["sort", "dnd", "contextmenu", "types"] 

    }); 

type 속성

설정할 수있다. API