Maison > Questions et réponses > le corps du texte
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
}
Après avoir appelé e.dataTransfer.clearData() dans la fonction drop, l'exécution de getData("Text") renverra également la valeur dans setData(), alors comment utiliser clearData(), ou après l'exécution de la fonction drop ? les données enregistrées par dataTransfer.setData() seront-elles automatiquement supprimées ?
滿天的星座2017-05-18 10:58:51
Il n'y a aucun problème avec ma sortie. DataTransfer.clearData() ne peut être utilisé que dans l'événement 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"));
}
阿神2017-05-18 10:58:51
clearData() ne peut être utilisé que dans la fonction dragStart. Appeler clearData() dans la fonction drop est inutile et inutile, car les données enregistrées par setData() sont créées au démarrage du glisser et ne sont pas utilisées lorsque le glisser est effectué. Autrement dit, à la fin du glissement, les données enregistrées par setData() seront détruites.