我有一个TreeView,一旦用户将项目放到所需的位置,它会显示一个对话框并要求确认,如果用户选择取消,我将如何取消该项目的位置,以便它返回到它原来的位置?我目前的代码在下面但不起作用:
var newDiv = $(document.createElement('div'));
newDiv.html('Are you sure you want to move the item: ' + title);
newDiv.dialog( {
autoOpen: true,
width: 600,
buttons: {
"Save": function () {
$(this).dialog("close");
},
"Cancel": function () {
$(this).dialog("close");
e.setValid = false;
}
}
});
我也试过在dragend事件上做同样的代码并使用e.preventDefault();
而没有更多的运气
答案 0 :(得分:3)
drop
事件处理程序提供setValid
函数,可以防止发生丢弃。例如:
function onDrop(e) {
e.setValid(confirm('Do you wish to move this item here?'));
}
$("#treeView").kendoTreeView({
// ...
dragAndDrop: true,
drop: onDrop
});
我写了fiddle来演示这是如何运作的。
答案 1 :(得分:1)
您是否尝试使用 drop 事件并在不满足条件时调用防止默认值?