cari

Rumah  >  Soal Jawab  >  teks badan

Mengapa dataTransfer.clearData tidak berfungsi?

 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?

習慣沉默習慣沉默2809 hari yang lalu729

membalas semua(2)saya akan balas

  • 滿天的星座

    滿天的星座2017-05-18 10:58:51

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

    balas
    0
  • 阿神

    阿神2017-05-18 10:58:51

    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.

    balas
    0
  • Batalbalas