是否有任何jquery排序插件,如drupal分类术语

时间:2012-10-17 08:49:55

标签: jquery jquery-ui drupal jquery-plugins

我喜欢在drupal的分类中进行排序的功能,如下所示: http://drupal.org/project/nodeorder 或者如果您已经在drupal 7中编辑分类法的经验。

它提供了一个树/目录,如结构排序......

我一直在尝试使用jquery ui和嵌套的可排序插件进行2d排序:  http://mjsarfatti.com/sandbox/nestedSortable/

但是我是b!tch!n'关于drupal中的那种特征,因为它在表格格式中干净且友好。

有人能为我提供更好的选择吗?我一直在搜索drupal repos,没有运气

1 个答案:

答案 0 :(得分:0)

使用JQuery UI排序表:

http://jsfiddle.net/bgrins/tzYbU/

您可以应用自己的CSS来创建任何外观&感觉你想要。请注意,这不支持父子关系。

支持父子关系的东西是JQuery'treeTable'插件:https://github.com/ludo/jquery-treetable

这是一个实现treeTable插件的jsFiddle: http://jsfiddle.net/mccannf/Tbd38/10/

代码相当简单:

    $(document).ready(function()  {
        $("#dragndrop").treeTable({
              expandable: false
        });

        // Drag & Drop Code
        $("#dragndrop .entry").draggable({
          helper: "clone",
          opacity: .75,
          refreshPositions: true, // Performance?
          revert: "invalid",
          revertDuration: 300,
          scroll: true
         }
        );

        $("#dragndrop .entry").each(function() {
          $($(this).parents("tr")[0]).droppable({
            drop: function(e, ui) {
              $($(ui.draggable).parents("tr")[0]).appendBranchTo(this);
              setNewParent($($(ui.draggable).parents("tr")[0]).attr("id"), $(this).attr("id"));
            },
            hoverClass: "accept",
            over: function(e, ui) {
              if(this.id != $(ui.draggable.parents("tr")[0]).id && !$(this).is(".expanded")) {
                $(this).expand();
              }
            }
          });
        });

        function setNewParent(child, parent)
        {
            // do ajax call here
            //alert(child);
            //alert(parent);
        }
    });

此插件的主要缺点:

  • 您无法重新排序处于同一级别的节点。
  • 您无法将节点直接移动到最顶层。

有时间的人可以分叉插件并将这些功能添加到其中。