2011-12-30 81 views
4

我(試圖)使用JStree的分類/子類別樹。 花了相當長的一段時間,但我設法創建了一個具有JSON數據的樹,我從數據庫中檢索(使用PHP進行查詢和構建JSON對象)。JStree:跟蹤拖放樹

現在我想能夠跟蹤拖動&拖放操作。 即:maincategory中的subcategorie x被拖拽到maincategorie中b。 我需要記錄這個動作後更改數據庫。 我想我會需要'check_move'或'drop_finish'功能。 丟棄結束根本不起作用,事件不會被觸發。這似乎是因爲我的節點沒有jstree-drop類,但我似乎無法正確插入類:它不起作用。

check_move函數在傳遞其他子類別時會繼續觸發,並因此創建不需要的數據負載。

我的(測試)JSON數據:

[ 
{ 
    "metadata": { 
     "id": "1" 
    }, 
    "data": "Geluid", 
    "children": [ 
     { 
      "data": "Speakers", 
      "attr": { 
       "href": "" 
      }, 
      "metadata": { 
       "id": "1" 
      } 
     }, 
     { 
      "data": "Versterkers", 
      "attr": { 
       "href": "" 
      }, 
      "metadata": { 
       "id": "3" 
      } 
     } 
    ] 
}, 
{ 
    "metadata": { 
     "id": "2" 
    }, 
    "data": "Licht", 
    "children": [ 
     { 
      "data": "Parren", 
      "attr": { 
       "href": "" 
      }, 
      "metadata": { 
       "id": "2" 
      } 
     } 
    ] 
} 
] 

我JStree代碼:

$(function() { 
    $("#Create").click(function() { 
    $("#tree").jstree("create"); 
    });  
    $("#Rename").click(function() { 
    $("#tree").jstree("rename"); 
    }); 
    $("#Remove").click(function() { 
    $("#tree").jstree("remove"); 
    }); 


    $("#tree").jstree({ 
     "dnd" : { 
      "drop_finish" : function (data) { 
     alert ("Drag OK"); 
      //alert("Dragged: " + data.o.attr('id') + " to " + data.r.attr('id'));   
     } 
     }, 
     "themes" : { 
      "theme" : "classic", 
      "dots" : true, 
      "icons" : false 
     }, 
     "json_data" : { 
      "ajax" : { 
       "url" : "get_category_tree.php" 
      } 
     }, 
     "plugins" : [ "themes", "json_data", "ui", "crrm", "checkbox", "dnd" ] 
    }) 
    .bind("select_node.jstree", function (e, data) { 
     var req = new ZaxasRequest(); 
     req.getContent("category_content.php?id=" + data.rslt.obj.data('id') +"", "category_content"); 
    }) 
}); 

基本上,我想獲得的ID。不要擔心主類別和子類別ID可能是相同的,我將在稍後解決該問題;) 任何人都可以將我指向正確的方向?

+0

的回答類似的問題在這裏找到。 [點擊這裏] [1] [1]:http://stackoverflow.com/questions/6110708/bindmove-node-jstree-data-rslt-obj-undefined-how-to -get-node-data – Teja 2013-06-10 02:57:41

回答

0

綁定到移動事件,並使用CRRM插件... 我會後後一些代碼示例.. JSTree CRRM

+0

截至2016年,您提供的鏈接沒有CRRM插件 – 2016-08-12 09:23:55