我正在尝试创建一个文件拖放处理程序(将文件拖到浏览器窗口中,用于上传)。
出于某种原因,当我将拖放侦听器绑定到$("body")
而不是绑定到$("div")
主体中的 a 时,事件会连续触发多次,有时甚至是不间断的(看似循环)。这可能是什么原因造成的?
这是代码的精简版本:http: //jsfiddle.net/WxMwK/9/
var over = false;
$("body")
.on("dragover", function(e){
e.preventDefault();
if (! over) {
over = true;
$("ul").append($("<li/>").text("dragover"));
}
})
.on("dragleave", function(e){
e.preventDefault();
if (over) {
over = false;
$("ul").append($("<li/>").text("dragleave"));
}
})
.on("drop", function(e){
e.preventDefault();
if (over) {
over = false;
$("ul").append($("<li/>").text("drop"));
}
});
测试:将文件拖入橙色区域,您将看到该事件连续触发多次。