Pourquoi dataTransfer.clearData ne fonctionne pas ?
習慣沉默
習慣沉默 2017-05-18 10:56:51
0
2
686
 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 ?

習慣沉默
習慣沉默

répondre à tous(2)
滿天的星座

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"));
}
阿神

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!