我使用HTML5拖放将项目从一个DIV移至网页上的另一个。 我在onDrop事件中将项目添加到“目标”,并在dragEnd事件中从“源”中删除项目。 当我放下物品时,我会检查一些条件(放物的确切位置),如果没有满足,我不会将其添加到目的地,并且需要以某种方式通知dragEnd不要从原点中移除物品。
我已经尝试过了:
function dropHandler(event) {
if(!checkConditions()){
event.dataTransfer.dropEffect = 'none';
event.returnValue = false;
return false;
}
addElementToDestination(event);
}
function dragEndHandler(event) {
//expect this to be 'none' for cancelled drop
if (event.dataTransfer.dropEffect == 'move') {
event.target.parentNode.removeChild(event.target);
}
}
但是它不起作用:如果我将项目放在目标上方,event.dataTransfer.dropEffect始终为“移动”。 关于如何让dragEndHandler知道它不需要删除拖动的项目还有其他建议吗?
谢谢!