0
我正在尝试为Web应用程序实现drag'n'drop上传输入。检测拖动开始和结束以及合适的拖放目标样式可以完美地工作,尽管只要将目标上的图像文件拖放到浏览器中即可。我知道这经常被问到,但我还没找到解决方案。HTML5 DragNDrop - 拖放事件永不会触发
我所看到的是:听众dragenter
,dragstart
和dragend
正确着火,而drop
没有。请参阅下面的代码:
(注:app
对象只是一个简单的自定义的抽象对象,没什么特别的关于它的app.on
方法调用addEventListener
,重视包装在一个try-catch块的事件。)
附加的事件
各个事件
app.events.startedDragging = function(event) {
event.preventDefault();
event.stopPropagation();
return false;
};
app.events.isDragging = function(event) {
event.preventDefault();
event.stopPropagation();
app.elements.pictureDropArea.classList.add('dragged-over');
return false;
};
app.events.stoppedDragging = function(event) {
event.preventDefault();
event.stopPropagation();
app.elements.pictureDropArea.classList.remove('dragged-over');
return false;
};
app.events.isDropped = function(event) {
event.preventDefault();
event.stopPropagation();
console.log('drop event fired.');
var file = event.dataTransfer.files[ 0 ];
console.log(file);
return false;
};
如果你想多更好的API和/或想要保持您的理智,请尝试https://github.com/fresheneesz/drip-drop –