有没有像drupal分类术语这样的jQuery排序插件
Posted
技术标签:
【中文标题】有没有像drupal分类术语这样的jQuery排序插件【英文标题】:Is there any jquery sort plugin like drupal taxonomy terms 【发布时间】:2012-10-07 11:39:03 【问题描述】:我喜欢在 drupal 的分类中排序的功能,如下所示: http://drupal.org/project/nodeorder 或者如果您已经有在 drupal 7 中编辑分类的经验。
它提供了类似结构排序的树/目录...
我一直在 jquery ui 和嵌套可排序插件上尝试 2d 排序: http://mjsarfatti.com/sandbox/nestedSortable/
但我对 drupal 中排序的特性不满意,因为它在表格格式中干净且友好。
谁能给我一个更好的选择?我一直在搜索drupal repos,但没有运气
【问题讨论】:
【参考方案1】:使用 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);
);
这个插件的主要缺点:
您不能对同一级别的节点重新排序。 您不能将节点直接移动到最顶层。有时间的人可能会 fork 插件并将这些功能添加到其中。
【讨论】:
谢谢你,但我也希望它在排序中具有父子关系,在这种情况下,您可能还想向左或向右拖动排序以设置该行的父级可能是什么。可以通过在拖动时添加一个类来将该行设置为另一行的子行或父行来完成。我知道它可以使用长而粗暴的代码来完成(因为我是一个 javascript 用户而不是开发人员),并且寻找一个 jquery 插件真的很适合这个 @user1076813 更新了treeTable
插件,但找不到其他任何东西。以上是关于有没有像drupal分类术语这样的jQuery排序插件的主要内容,如果未能解决你的问题,请参考以下文章