Javascript 拖放检测

Javascript 拖放检测,javascript,events,dom,drag-and-drop,Javascript,Events,Dom,Drag And Drop,我的任务只是检测元素何时在放置区/离开放置区/放置区。有人能解释一下为什么浏览器没有检测到丢弃事件吗 content2.addEventListener("dragenter",function(){ console.log("Pic is in drop zone."); },false); content2.addEventListener("dragleave",function(){ console.log("Picture is no longer in drop zone");

我的任务只是检测元素何时在放置区/离开放置区/放置区。有人能解释一下为什么浏览器没有检测到丢弃事件吗

content2.addEventListener("dragenter",function(){
console.log("Pic is in drop zone.");
},false);


content2.addEventListener("dragleave",function(){
console.log("Picture is no longer in drop zone");
},false);

content2.addEventListener("drop",function(){
console.log("Picture dropped in drop zone");
},false);
我知道drop在默认情况下是禁用的,但在drop事件中添加行
this.preventDefault()
并没有任何区别


这里是JS-Bin链接:

您需要在
drop
dragover
事件中使用
预防默认值

content2.addEventListener("dragover",function(e){
  e.preventDefault();
},false);

content2.addEventListener("dragenter",function(e){
  console.log("Pic is in drop zone.");
},false);

content2.addEventListener("dragleave",function(){
  console.log("Picture is no longer in drop zone");
},false);

content2.addEventListener("drop",function(e){
  e.preventDefault();
  console.log("Picture dropped in drop zone");
},false);

它需要是
event.preventDefault()
其中
event
是传递给回调的参数,而不是
this.preventDefault()
@PatrickEvans仍然不工作…@PatrickEvans仍然不工作。我在这里发帖之前已经试过了。这里是JS-Bin:我在javascript控制台中获得控制台消息,甚至是
drop
事件控制台消息。什么不起作用?您使用的是什么浏览器?您发布的答案有效,错误在于在
dragover
中使用
this
而不是
e
。重新发布您的答案,以便我选择正确的答案。