Warum funktioniert dataTransfer.clearData nicht?
習慣沉默
習慣沉默 2017-05-18 10:56:51
0
2
644
 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
     }

Nach dem Aufruf von e.dataTransfer.clearData() in der Drop-Funktion wird beim Ausführen von getData("Text") auch der Wert in setData() zurückgegeben. Wie wird also clearData() verwendet, oder wird die Drop-Funktion ausgeführt? Werden die von dataTransfer.setData() gespeicherten Daten automatisch gelöscht?

習慣沉默
習慣沉默

Antworte allen(2)
滿天的星座

我的输出没有问题啊,DataTransfer.clearData()只能用在dragstart事件中。


<p id="source" draggable="true">测试数据</p>

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()保存的数据会被销毁。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!