使用jQuery UI创建一个可排序,可放置,ARBITRARILY-NESTED div的树

时间:2014-01-23 17:50:19

标签: jquery jquery-ui jquery-ui-sortable jquery-ui-droppable

我是一个Javascript noob试图编写一个HTML / CSS / Javascript / jQuery / jQuery UI程序来将SORTABLE div拖放到另一个中以构成任意树结构。您可以在http://jsfiddle.net/randomhittingking/5S7v7/运行我当前的代码。 Javascript部分是

$(document).ready(function(){
    $(".node").sortable({
        receive: function(event, ui){}
    });
  $(".node").droppable(
    {
      greedy: true,
      drop: function(event, ui){
        var dropped = ui.draggable;
        var droppedOn = $(this);
        dropped.remove();
        droppedOn.append("<div class=\"node\">" + dropped.html() + "</div>");
      }
    }
  );
});

我有几个问题,例如:

  • 我无法将div拖入内部div。例如,如果div 3嵌套在div 2中,div 1在这两个div之外,那么我就不能将div 1拖放到div 3中。
  • 经过一些拖放后,程序停止让我将div放入非空的div中。
  • 内部div松散了他们的可分类性。如果div 3和4嵌套在div 2中并且div 1在所有这些div之外,则div 1对于div 3和4不是“可排序的”。

1 个答案:

答案 0 :(得分:1)

我认为这个扩展会做你想做的事情。如果您只想编写代码进行学习,那么查看源代码可能会对您有所帮助。

http://mjsarfatti.com/sandbox/nestedSortable/