Peristiwa ondrop

Definisi dan penggunaan

Ketika elemen yang dapat diseret atau pilihan teks ditempatkan di target penempatan yang berlaku, peristiwa ondrop akan terjadi.

Seret dan lepas adalah fungsi yang sangat umum dalam HTML5. Itu seperti saat Anda "menangkap" objek dan mengangkatnya ke posisi yang berbeda. Untuk mengetahui lebih banyak, baca tentang Pindai HTML5pada tutorial HTML Anda.

Keterangan:Untuk membuat elemen dapat diseret, gunakan tutorial HTML global Atribut draggable HTML5

Petunjuk:Secara baku, tautan dan gambar dapat diseret, tanpa perlu atribut draggable.

Dalam berbagai tahap operasi seret dan lepas, banyak peristiwa yang digunakan dan mungkin terjadi:

Peristiwa yang diaktifkan di target yang dapat diangkat (elemen sumber):

  • ondragstart - Terjadi ketika pengguna mulai mengangkat elemen.
  • ondrag - Terjadi ketika elemen diangkat.
  • ondragend - Terjadi ketika pengguna menyelesaikan pengangkatan elemen.

Peristiwa yang diaktifkan di target penempatan:

  • ondragenter - Terjadi ketika elemen yang diangkat memasuki target penempatan.
  • ondragover - Terjadi ketika elemen yang diangkat berada di target penempatan.
  • ondragleave - Terjadi ketika elemen yang diangkat meninggalkan target penempatan.
  • ondrop - Terjadi ketika elemen yang diangkat ditempatkan di target penempatan.

Contoh

Melaksanakan JavaScript dalam elemen <div> yang menempatkan elemen yang dapat diangkat:

<div ondrop="myFunction(event)"></div>

Coba sendiri

Ada contoh TIY lebih banyak di bawah halaman.

Sintaksis

Dalam HTML:

<elemen ondrop="myScript">

Coba sendiri

Dalam JavaScript:

objek.ondrop = function(){myScript};

Coba sendiri

Dalam JavaScript, gunakan metode addEventListener():

objek.addEventListener("drop", myScript);

Coba sendiri

Keterangan:Internet Explorer 8 atau versi yang lebih awal tidak mendukung metode addEventListener()

Detil teknikal

Bubbling: Didukung
Boleh dicancel: Didukung
Jenis peristiwa: DragEvent
Tanda HTML yang didukung: Semua elemen HTML
Versi DOM: Peristiwa Level 3

Dukungan pereka web

Angka di dalam tabel menunjukkan versi pereka web pertama yang mendukung peristiwa ini penuh.

Peristiwa Chrome IE Firefox Safari Opera
ondrop 4.0 9.0 3.5 6.0 12.0

Contoh tambahan

Pertunjukan untuk semua peristiwa seret dan lepas yang mungkin:

<p draggable="true" id="dragtarget">Seret saya!</p>
<div class="droptarget">Seret di sini!</div>
<script>
/* ----------------- Peristiwa yang diaktifkan di sasaran seret dan lepas ----------------- */
document.addEventListener("dragstart", function(event) {
  // Methode dataTransfer.setData() menetapkan jenis dan nilai data yang diseret
  event.dataTransfer.setData("Text", event.target.id);
  // Menyempan beberapa teks saat mulai menyeret elemen p
  document.getElementById("demo").innerHTML = "Mulai menyeret elemen p.";
  // Mengubah kecerahan elemen yang dapat diseret
  event.target.style.opacity = "0.4";
});
// Mengubah warna teks output semasa menyeret elemen p
document.addEventListener("drag", function(event) {
  document.getElementById("demo").style.color = "red";
});
// Menyempan beberapa teks dan mengatur kecerahan setelah menyeret elemen p
document.addEventListener("dragend", function(event) {
  document.getElementById("demo").innerHTML = "Selesai menyeret elemen p.";
  event.target.style.opacity = "1";
});
/* ----------------- Peristiwa yang diaktifkan di target penempatan ----------------- */
// Saat p elemen yang dapat dipindahkan memasuki droptarget, ubah gaya bingkai DIV
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// Secara bawaan, data tidak dapat ditempatkan di dalam elemen lain. Untuk memungkinkan penempatan, kita harus mencegah pengelolaan bawaan elemen
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Saat p elemen yang dapat dipindahkan meninggalkan droptarget, tetapkan gaya bingkai DIV kembali
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* Pada saat jatuh - mencegah pengelolaan bawaan browser untuk data (dengan mengambil tindakan bawaan seperti membuka link) */
Tetapkan warna teks dan warna garis bingkai DIV kembali
Dapatkan data yang dipindahkan menggunakan metode dataTransfer.getData()
Data yang dipindahkan adalah id elemen yang dipindahkan ("drag1")
Menambahkan elemen yang dipindahkan ke elemen tujuannya
*/
document.addEventListener("drop", function(event) {
  event.preventDefault();
  if ( event.target.className == "droptarget" ) {
    document.getElementById("demo").style.color = "";
    event.target.style.border = "";
    var data = event.dataTransfer.getData("Text");
    event.target.appendChild(document.getElementById(data));
  }
});
</script>

Coba sendiri

Halaman yang berhubungan

Panduan HTML: Pindahan HTML5

Buku Rujukan HTML: Properti draggable HTML