2011-12-30 166 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