2015-01-05 50 views
4

在Chrome中,拖動事件被觸發並記錄到控制檯。 在Firefox和IE中,它沒有。在Firefox或IE中未觸發的拖動事件

<html> 
<head> 

<style> 
    #d { 
    width:20px; 
    height:20px; 
    background-color: red; 
    } 
</style> 

</head> 
<body> 

<div id="d" draggable="true"></div> 

<script> 
    d = document.getElementById('d'); 
    d.addEventListener('dragstart', function(e){ 
     console.log("dragstart:", e); 
    }); 
    d.addEventListener('drag', function(e){ 
     console.log("drag:", e); 
    }); 
</script> 

</body> 
</html> 

小提琴版本:http://jsfiddle.net/korimako/e1wqafyr

如何建立一個div派遣拖動事件和妥善聽呢?

回答

7

火狐需要拖動事件被觸發

d = document.getElementById('d'); 

d.addEventListener('drag', function(e){ 
    console.log("drag:", e) 
}); 

d.addEventListener('dragstart', function(e){ 
    e.dataTransfer.setData('application/node type', this); 
    console.log("dragstart:", e) 
}); 

FIDDLE

之前的阻力類型見thisdataTransfer設置