treepanle beforeNodeDrop事件异步问题
在beforeNodeDrop事件中,弹出确认窗口之后,用户还没选择“是”/“否”,代码还会继续往下走,
beforeNodeDrop = function beforeNodeDrop(e) {
var curTree = e.tree;// 得到当前的tree
var dropNode = e.dropNode;// 移动的节点
var targetNode = e.target;// 目标节点
var type = e.point;// 移动位置
Ext.Msg.confirm("系统提示", "你是否确定此操作?", function(_btn) {
if (_btn == "yes") {
...............
} else {
return false;
}
}, this);
.......其他代码
}
用下面的修改,问题还是一样存在,事件不等待Ext.Ajax.request的返回状态,继续向下执行,
beforeNodeDrop = function beforeNodeDrop(e) {
var curTree = e.tree;// 得到当前的tree
var dropNode = e.dropNode;// 移动的节点
var targetNode = e.target;// 目标节点
var type = e.point;// 移动位置
// alert(Ext.util.JSON.encode(dropNode.attributes));
// alert(Ext.util.JSON.encode(targetNode.attributes));
var flag = false;
Ext.Ajax.request({
url : '../common/Tree.jsp',
method : 'post',
params : {
begin : "",
end : ""
},
success : function(response, option) {
var res_res = Ext.util.JSON.decode(response.responseText);
if (res_res.success == true) {
flag = true;
} else {
flag = false;
}
},
failure : function(response, option) {
alert("异步通讯失败,请与管理员联系!");
}
});
return flag;
}
怎样实现,当移动节点是,会提示用户是否确定,等用户点击按钮以后在处理相应操作???????