我有一个用一些 json 填充的花式树。我也有一个可放置的 div。我希望能够在树中拖动节点(即在包含的层次结构中移动东西)并且我希望能够将东西从树中拖到我的外部可放置 div 中。
我怎样才能做到这一点?
这是我所拥有的:
我的html:
<div id="tree"></div>
<div id="droppable">
stuff
</div>
dnd 初始化选项:
{
autoExpandMS: 400,
focusOnClick: true,
preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.
preventRecursiveMoves: true, // Prevent dropping nodes on own descendants
dragStart: function(node, data) {return true;},
dragEnter: function(node, data) {return true;},
dragDrop: function(node, data) {data.otherNode.moveTo(node, data.hitMode);},
draggable: {
containment: 'document',
scroll : false,
scrollSpeed: 7,
scrollSensitivity: 10,
}
},
可丢弃初始化
$('#droppable').droppable({
onDrop : function(e,source){
alert('dropped: '+source.textContent);
window.dropped = source;
window.event = e;
},
});
扩展:
我正在使用 ["dnd","edit","contextMenu"] 扩展。如果有一些我不知道的冲突,我会提到这一点......但是我确实禁用了编辑和 contextMenu 无济于事。
行为:
- contextMenu 和编辑扩展工作正常。
- 我可以在树中拖放项目以重新排序节点。
- 我不能把东西拖出树
- 当我拖过边缘时
scroll: true
,树只是得到一些滚动到无穷大的滚动条 scroll: false
树滚动条的行为相同,但没有发生实际滚动- 遏制似乎没有效果
- 当我拖过边缘时
包含的资源:
- jquery.js jquery-ui-1.11.0.js
- jquery.fancytree-all.css
- jquery.contextMenu.css
- jquery.contextMenu-1.6.5.js
- jquery.fancytree.contextMenu.js
- 花式树.min.css