jQuery嵌套可排序的maxDepth选项

时间:2015-09-15 19:58:32

标签: jquery jquery-plugins jquery-ui-sortable

我正在使用此插件:http://johnny.github.io/jquery-sortable/

(它不是jQueryUI Sortable。这个是可嵌套的。)

Here's a demo

我试图这样做:

菜单应该只允许根目录中的文件夹。

它不应该允许在另一个文件夹中拖动文件夹。

不幸的是,这个插件没有maxLevel或Depth选项。

到目前为止我所做的是使用isValidTarget函数返回true或false。如果拖动的项目是.folder.placeholder位于.folder内,则返回false并且它几乎可以正常工作,但问题是返回false会删除占位符,因此它会再次返回true。 (所以它的闪烁)

if($item.hasClass('folder') && $('.placeholder').parent().parent('li').hasClass('folder')){
    return false
}else{
    return true
}

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

修正了它。

演示:http://jsfiddle.net/mirohristov/kk8k2z8w/1/

防止将子菜单拖到另一个子菜单中。

menu.sortable({
 isValidTarget: function ($item, container) {
    return !(container.el.parent('li').hasClass('folder') && $item.hasClass('folder'));
 }
});