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
。重新发布您的答案,以便我选择正确的答案。