2014-09-27 51 views
1

我的任務只是檢測何時元素處於放置區域/放置放置區域/放置放置區域。有人可以解釋爲什麼瀏覽器沒有檢測到丟棄事件。拖放檢測

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 event中添加行this.preventDefault()並沒有什麼區別。

這裏是JS斌鏈接:http://jsbin.com/ledur/2/edit

+0

它需要'event.preventDefault()'這裏'event'是回調的參數,不是'this.preventDefault()' – 2014-09-27 23:05:43

+0

@PatrickEvans仍然沒有工作... – 2014-09-27 23:11:29

+0

@PatrickEvans仍然沒有工作。在發佈問題之前,我已經嘗試過了。這裏是JS斌:http://jsbin.com/ledur/3/edit – 2014-09-27 23:16:50

回答

1

您在drop需要preventDefaultdragover事件

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); 

Modified JSBin