Mengapa dataTransfer.clearData tidak berfungsi?
習慣沉默
習慣沉默 2017-05-18 10:56:51
0
2
642
 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
     }

Selepas memanggil e.dataTransfer.clearData() dalam fungsi drop, melaksanakan getData("Teks") juga akan mengembalikan nilai dalam setData(), jadi bagaimana untuk menggunakan clearData(), atau selepas fungsi drop akan dilaksanakan? data yang disimpan oleh dataTransfer.setData() dipadamkan secara automatik?

習慣沉默
習慣沉默

membalas semua(2)
滿天的星座

Tiada masalah dengan output saya DataTransfer.clearData() hanya boleh digunakan dalam acara 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() hanya boleh digunakan dalam fungsi dragStart Memanggil clearData() dalam fungsi drop adalah sia-sia dan tidak perlu, kerana data yang disimpan oleh setData() dicipta apabila seretan bermula, dan ia tidak digunakan apabila seretan itu. digugurkan, iaitu apabila menyeret tamat, data yang disimpan oleh setData() akan dimusnahkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!