Peristiwa ondrop

Definisi dan penggunaan

Ketika elemen yang dapat digeser atau pilihan teks diposisikan di target penempatan yang berlaku, terjadi event ondrop.

Geser dan lepas adalah fitur yang sangat umum dalam HTML5. Ini adalah saat Anda "menangkap" objek dan menggesernya ke posisi yang berbeda. Untuk mendapatkan pengetahuan lebih lanjut, baca tentang Pindah Tanggam HTML5dalam tutorial HTML kami.

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

Pesan:Secara default, tautan dan gambar dapat digeser, tanpa perlu atribut draggable.

Pada berbagai tahap operasi geser dan lepas, ada banyak event yang digunakan dan mungkin terjadi:

Event yang diaktifkan di target yang dapat digeser (elemen sumber):

  • ondragstart - Terjadi saat pengguna memulai untuk menggeser elemen.
  • ondrag - Terjadi saat elemen digeser.
  • ondragend - Terjadi saat pengguna menyelesaikan penggeser elemen.

Event yang diaktifkan di target penempatan:

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

Contoh

Pada saat elemen yang dapat digeser ditempatkan di dalam elemen <div>, eksekusi JavaScript:

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

Coba Sendiri

Ada banyak contoh TIY di bawah halaman.

Sintaksis

Pada HTML:

<elemen ondrop="myScript">

Coba Sendiri

Pada JavaScript:

objek.ondrop = function(){myScript};

Coba Sendiri

Pada JavaScript, gunakan metode addEventListener():

objek.addEventListener("drop", myScript);

Coba Sendiri

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

Detil teknis

Bubbling: Didukung
Dapat dibatalkan: Didukung
Tipe event: DragEvent
Tag HTML yang didukung: Semua elemen HTML
Versi DOM: Level 3 Events

Dukungan Browser

Angka di tabel menunjukkan versi browser pertama yang mendukung event ini.

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

Beberapa contoh lain

Pertunjukan demo dari semua event geser dan lepas yang mungkin:

<p draggable="true" id="dragtarget">Geser saya!</p>
<div class="droptarget">Jatuhkan disini!</div>
<script>
/* ----------------- Event yang diaktifkan di target geser ----------------- */
document.addEventListener("dragstart", function(event) {
  // Mengatur jenis dan nilai data yang disetel melalui method dataTransfer.setData()
  event.dataTransfer.setData("Text", event.target.id);
  // Menyampaikan beberapa teks saat elemen p mulai digeser
  document.getElementById("demo").innerHTML = "Mulai geser elemen p.";
  // Mengubah kecerahan elemen yang dapat digeser
  event.target.style.opacity = "0.4";
});
// Mengubah warna teks output saat elemen p digeser
document.addEventListener("drag", function(event) {
  document.getElementById("demo").style.color = "red";
});
// Menyampaikan beberapa teks dan mengatur kecerahan setelah elemen p digeser
document.addEventListener("dragend", function(event) {
  document.getElementById("demo").innerHTML = "Selesai geser elemen p.";
  event.target.style.opacity = "1";
});
/* ----------------- Peristiwa yang dijalankan di tempat tujuannya ----------------- */
// Saat p element yang dapat diangkut 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 diangkut ke dalam elemen lain. Untuk memungkinkan pindah, kita harus menghentikan penanganan bawaan elemen
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Saat p element yang dapat diangkut meninggalkan droptarget, atur ulang gaya bingkai DIV
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* Pada saat pindah - menghentikan penanganan bawaan browser untuk data (membuka dengan tautan saat diangkut ke tempat tujuannya)
Atur ulang warna teks dan garis bingkai DIV
Ambil data yang diangkut menggunakan metode dataTransfer.getData()
Data yang diangkut adalah id elemen yang diangkut ("drag1")
Tambahkan elemen yang diangkut 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-ralat

Panduan HTML: Pindah dan Taruh HTML5

Panduan Referensi HTML: Properti HTML draggable