Kendo ui 剑道UI树视图:如何避免将节点重新放到其父节点?

Kendo ui 剑道UI树视图:如何避免将节点重新放到其父节点?,kendo-ui,kendo-treeview,Kendo Ui,Kendo Treeview,以下代码段禁止在特定条件下删除节点。禁止将节点删除到其自己的父节点的条件是什么?(即,节点未移动)。默认情况下,TreeView允许此行为 <div id="treeview"></div> <script> $("#treeview").kendoTreeView({ dragAndDrop: true, dataSource: [ { text: "foo", items: [ { text: "bar" },

以下代码段禁止在特定条件下删除节点。禁止将节点删除到其自己的父节点的条件是什么?(即,节点未移动)。默认情况下,TreeView允许此行为

<div id="treeview"></div>
<script>
$("#treeview").kendoTreeView({
   dragAndDrop: true,
   dataSource: [
       { text: "foo", items: [
          { text: "bar" },
          { text: "baz" }
        ] }
   ]
});

var treeview = $("#treeview").data("kendoTreeView");

treeview.bind("drag", function(e) {

   if (condition1 == false) {
     // deny the drop
     e.setStatusClass("k-denied");
   }

});
</script>

$(“#treeview”).kendoTreeView({
dragAndDrop:没错,
数据源:[
{案文:“foo”,项目:[
{text:“bar”},
{文本:“baz”}
] }
]
});
var treeview=$(“#treeview”).data(“kendoTreeView”);
绑定(“拖动”,函数(e){
如果(条件1==false){
//拒绝放弃
e、 setStatusClass(“k-拒绝”);
}
});

如果您只需要防止在它自己的父级上拖动它,您可以实现以下条件:

// Get reference to target item
var tgt = this.dataItem(e.dropTarget);
// Get reference to parent item of the one being dragged
var parent = this.dataItem(this.parent(e.sourceNode));
// If they have the same uid then they are the same and condition should be false
    var condition1 = (parent.uid === tgt.uid);
    if (condition1 == true) {
      // deny the drop
      e.setStatusClass("k-denied");
    }
请在此处查看它的实际操作:

$(文档).ready(函数(){
$(“#treeview”).kendoTreeView({
dragAndDrop:没错,
数据源:[
{案文:“foo”,项目:[
{text:“bar”},
{文本:“baz”}
] }
]
});
var treeview=$(“#treeview”).data(“kendoTreeView”);
绑定(“拖动”,函数(e){
var tgt=this.dataItem(如dropTarget);
var parent=this.dataItem(this.parent(e.sourceNode));
log(parent.uid,tgt.uid,parent.uid==tgt.uid);
var condition1=(parent.uid!==tgt.uid);
如果(条件1==false){
//拒绝放弃
e、 setStatusClass(“k-拒绝”);
}
});
});

仅限于父母或任何祖先(祖父母、曾祖父母等)?