Dojo:拖放停止拖动
我正在尝试使用Dojo dnd Source(1.4.2)创建一个接口,在这个接口中,我可以将一些对象从源移动到目标。它工作正常,但我想更改行为,以便在实际执行D&D之前执行检查,因此如果检查失败,将向用户显示错误消息,并且不会执行D&D。我尝试了在博客中找到的以下示例:Dojo:拖放停止拖动,dojo,drag-and-drop,Dojo,Drag And Drop,我正在尝试使用Dojo dnd Source(1.4.2)创建一个接口,在这个接口中,我可以将一些对象从源移动到目标。它工作正常,但我想更改行为,以便在实际执行D&D之前执行检查,因此如果检查失败,将向用户显示错误消息,并且不会执行D&D。我尝试了在博客中找到的以下示例: dojo.subscribe("/dnd/drop", function(source,nodes,iscopy) { if (nodes[0].id == 'docs_menu'){ dojo.publish
dojo.subscribe("/dnd/drop", function(source,nodes,iscopy)
{
if (nodes[0].id == 'docs_menu'){
dojo.publish("/dnd/cancel");
dojo.dnd.manager().stopDrag();
alert("Drop is not permitted");
}
}
);
但是它没有说这个.avatar是空的。有人知道怎么做吗
谢谢
Jose执行此类检查的正确方法是覆盖
dojo.dnd.source
中的checkacception(源、节点)
函数
var target = dojo.dnd.Source(node, {
checkAcceptance(source, nodes) : function() {
if (nodes[0].id == 'docs_menu') {
return false;
}
return this.inhertied(arguments);
}
});
有关详细信息,请参阅。执行此类检查的正确方法是覆盖
dojo.dnd.source
中的checkAcceptance(源、节点)
函数
var target = dojo.dnd.Source(node, {
checkAcceptance(source, nodes) : function() {
if (nodes[0].id == 'docs_menu') {
return false;
}
return this.inhertied(arguments);
}
});
有关更多详细信息,请参阅。我遇到了一个案例,在该案例中,我对列表中项目的顺序有限制。有些项目必须先于其他项目。由于订单未在验收阶段设置,因此无法在验收阶段进行检查。我用下面的方法解决了这个问题
on(mySource, "Drop", function(source, nodes, copy){
var invalid = false;
// ... run the checks to see if the new order is valid
// Keep the original order in a parameter named *data*
if(invalid == true) {
mySource.selectAll();
mySource.deleteSelectedNodes();
mySource.insertNodes(false, data);
}
else
{
// Have the data added
}
});
我遇到了一个例子,在这个例子中,我对列表中项目的顺序有限制。有些项目必须先于其他项目。由于订单未在验收阶段设置,因此无法在验收阶段进行检查。我用下面的方法解决了这个问题
on(mySource, "Drop", function(source, nodes, copy){
var invalid = false;
// ... run the checks to see if the new order is valid
// Keep the original order in a parameter named *data*
if(invalid == true) {
mySource.selectAll();
mySource.deleteSelectedNodes();
mySource.insertNodes(false, data);
}
else
{
// Have the data added
}
});