取消拖放

时间:2019-06-20 15:45:48

标签: javascript html drag-and-drop

我使用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知道它不需要删除拖动的项目还有其他建议吗?

谢谢!

0 个答案:

没有答案