仅在同一父级中启用节点的拖放
Posted
技术标签:
【中文标题】仅在同一父级中启用节点的拖放【英文标题】:Enable drag and drop of nodes only within the same parent 【发布时间】:2013-02-08 17:15:42 【问题描述】:我有一个带有多个节点的 ExtJs (3.4) 树,每个节点都有多个子节点。我想允许在每个父母中进行拖放,并且我想禁止将一个父母的孩子拖放到其他父母。
有没有一种简单而优雅的方式来做到这一点?否则,我正在考虑使用 onNodeDrop 和 onNodeOver 事件。
谢谢
【问题讨论】:
【参考方案1】:使用 jQuery-ui .sortable() http://jqueryui.com/sortable/
在不连接列表的情况下调用 .sortable() 将允许您仅在其父项中对其进行排序。
【讨论】:
对不起,我不能使用 jQuery,因为我的树绑定到 GeoExt 库。我绝对需要使用来自 ExtJS 的 Trees。 实际上你可以一起使用这两者,因为它们有不同的命名空间,你可以将 GeoExt 回调集成到一个闭包中以实现可排序回调。 但否则我会选择 onNodeDrop 事件,如果你想要反馈“你不能放在这里”或“你可以放在这里”,请使用 onNodeOver 事件。几周前我从头开始编写了自己的拖放库来处理 jQuery-ui 无法处理的树情况,并且仅使用本机 js 的跨浏览器仍然只有大约 200 行,因为你有您可以使用它的自定义事件可能会更容易以上是关于仅在同一父级中启用节点的拖放的主要内容,如果未能解决你的问题,请参考以下文章