我在javascript中使用原生拖放 API。如何在成功删除后从DOM中删除拖动的元素?
以下是一个示例:http://jsfiddle.net/KNG6n/3/
可以拖入框中的字母列表。当一个字母的节点放在盒子上时,我希望它从列表中删除(不影响包含相同字母的任何其他列表项)
答案 0 :(得分:11)
在对拖动元素执行任何操作之前,先监听dragend事件并检查dataTransfer对象的dropEffect变量:
htmlElement.addEventListener('dragend', function(event){
if(event.dataTransfer.dropEffect !== 'none'){
$(this).remove();
}
});
答案 1 :(得分:6)
另请参阅此示例:http://html5demos.com/drag
var el = document.getElementById(e.dataTransfer.getData('Text'));
el.parentNode.removeChild(el);
答案 2 :(得分:0)
一种方法是将其分配给在dragstart外部作用域的变量,并在删除时使用该元素。
答案 3 :(得分:0)
您可以在 dragend 事件中获取元素的放置位置。您可以找到该位置是否存在可放置元素。
您可以使用document.elementFromPoint(x, y);