JavaScript Module 模式和拖放 API
JavaScript Module pattern and Drag and Drop API
我有一个js示例模块,应该管理拖放文件上传。该代码似乎适用于"dragenter"事件函数,但是当我删除文件并且"drop"事件应调用已删除的函数时,代码始终转发到文件路径。
下面是代码示例
var testModule = (function testBuilder(){
function call(evt) {
evt.preventDefault();
console.log('works');
}
function dropped(evt) {
evt.preventDefault();
console.log('file dropped');
}
var element = document.getElementById('testBlock');
function init() {
element.addEventListener('dragenter', call, false);
element.addEventListener('drop', dropped, false);
}
publicAPI = {
init: init
};
return publicAPI;
})();
window.onload = function() {
testModule.init();
};
还有一个JSBIN在这里 https://jsbin.com/redixucate/edit?js,console,output
如果有人能弄清楚为什么它不断重定向文件路径,我将不胜感激。
使用 preventDefault 添加"dragover"事件,它应该可以工作。
在你的 init() 中:
element.addEventListener('dragover', over, false);
及以上功能:
function over(e) {
e = e || window.event;
if(e.preventDefault) {
e.preventDefault();
}
}
还要将相同的预防添加到其他两个功能中..
见 https://jsbin.com/xemovariwu/1/edit?js,console,output
另请参阅此问题/答案。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- HTML/CSS-用于拖放的全页面覆盖
- Rubaxa可与聚合物进行排序/拖放不起作用,具体取决于显示器:
- dblclick事件是在jquery拖放后触发的
- 无法进行拖放以使用本地存储
- 如何使用Java脚本创建提交按钮's的拖放功能
- Chrome原生拖放相对容器并不能正确渲染重影
- 如何在Javascript中创建排序、拖放多级列表
- html5拖放文件-在提交整个表单时上传
- 在jQuery UI中获取ul和li值,拖放即可排序
- html5拖放确定拖动项目的来源
- 我使用什么语言来创建像Webly这样的拖放功能
- 从imgur api的另一个浏览器拖放图像
- JavaScript Module 模式和拖放 API
- 使用 Yahoo API 拖放带有链接锚点的容器
- 如何从拖放中POST文件(从文件API)
- 文件系统API-递归列出从目录拖放文件
- HTML5拖放/文件API缩略图上传器不工作
- 如何检测浏览器支持文件API拖放