function dropStart(e){ e.dataTransfer.setData("Text",e.target.id); //e.dataTransfer.clearData();在这里调用clearData(),drop函数里的getData才会返回空值。 } function drop(e){ var id=e.dataTransfer.getData("Text"); e.dataTransfer.clearData(); console.log(e.dataTransfer.getData("Text"));//还可以获得id }
在drop函數裡呼叫e.dataTransfer.clearData()之後,執行getData("Text")還會傳回setData()裡的值,所以說clearData()要怎麼用啊,還是說在drop函數執行結束後dataTransfer.setData()保存的資料會自動刪除?
我的輸出沒有問題啊,DataTransfer.clearData()只能用在dragstart事件中。
clearData()只能用在dragStart函數,在drop函數裡是呼叫clearData()是沒用的,而且也沒必要,因為setData()保存的資料是在拖曳開始時創建,在拖曳放下也就是拖曳結束時,setData()儲存的資料會被銷毀。