javascript - 為什麼dataTransfer.clearData不起作用?
習慣沉默
習慣沉默 2017-05-18 10:56:51
0
2
614
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()保存的資料會自動刪除?

習慣沉默
習慣沉默

全部回覆 (2)
滿天的星座

我的輸出沒有問題啊,DataTransfer.clearData()只能用在dragstart事件中。

测试数据

var draggable = document.getElementById('source'); draggable.addEventListener('dragstart', drop); function drop (e) { e.dataTransfer.setData("Text",e.target.id); // 输出id:source alert('id:' + e.dataTransfer.getData("Text")); e.dataTransfer.clearData(); // 输出id: alert('id:' + e.dataTransfer.getData("Text")); }
    阿神

    clearData()只能用在dragStart函數,在drop函數裡是呼叫clearData()是沒用的,而且也沒必要,因為setData()保存的資料是在拖曳開始時創建,在拖曳放下也就是拖曳結束時,setData()儲存的資料會被銷毀。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!