ztree这个系列的最后一篇,也是ztree功能强大的体现之一——排序功能。ztree可以实现所有节点之间随意的拖拽排序功能,我这里根据需要实现了只允许同级之间随意拖拽排序,其实原理都一样,只是范围缩小了一些,多了一些判断而已。下面是每一层的代码,还是采取只贴出功能代码,因为这个拖拽排序功能我感觉很不错,所以单独拿出一篇博客来展示,也方便理解。
Jsp页面实现功能的js代码如下:
-
//拖拽前执行
-
var dragId;
-
function beforeDrag(treeId, treeNodes) {
-
for (var i=0,l=treeNodes.length; i<l; i++) {
-
dragId = treeNodes[i].pId;
-
if (treeNodes[i].drag === false) {
-
return false;
-
}
-
}
-
return true;
-
}
-
//拖拽释放之后执行
-
function beforeDrop(treeId, treeNodes, targetNode, moveType) {
-
if(targetNode.pId == dragId){
-
var data = {id:treeNodes[0].id,targetId:targetNode.id,moveType:moveType};
-
var confirmVal = false;
-
$.ajax({
-
async: false,
-
type: "post",
-
data:data,
-
url:"<%=request.getContextPath() %>/library/updateLibrarySort/ ",
-
success: function(json){
-
if(json=="success" ){
-
confirmVal = true;
-
alert('操作成功!');
-
} else{
-
alert('亲,操作失败');
-
}
-
},
-
error: function(){