Peristiwa ondragleave

Definisi dan penggunaan

Peristiwa ondragleave terjadi saat elemen yang dapat diangkat atau pilihan teks meninggalkan target penempatan yang berlaku.

peristiwa ondragenter dan ondragleave dapat membantu pengguna mengerti saat elemen yang dapat diangkat akan masuk atau keluar target penempatan. Misalnya, dapat menetapkan warna latar belakang saat elemen memasuki target penempatan dan menghapus warna saat elemen keluar target.

Geser dan lepas adalah fungsi yang umum di HTML5. Itu seperti saat Anda "menangkap" objek dan menariknya ke posisi yang berbeda. Untuk mengetahui lebih lanjut, baca tentang Pindai HTML5yang disediakan.

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

Petunjuk:Secara default, tautan dan gambar dapat diangkat, tanpa atribut draggable.

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

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

  • ondragstart - Terjadi saat pengguna mulai menarik elemen
  • ondrag - Terjadi saat elemen diangkat
  • ondragend - Terjadi saat pengguna menyelesaikan penarikan elemen

Peristiwa yang diaktifkan di target penempatan:

  • ondragenter - Terjadi saat elemen yang diangkat memasuki target penempatan
  • ondragover - Terjadi saat elemen yang diangkat berada di atas target penempatan
  • ondragleave - Terjadi saat elemen yang diangkat keluar target penempatan
  • ondrop - Terjadi saat elemen yang diangkat ditempatkan di target penempatan

Contoh

Eksekusi JavaScript saat elemen yang dapat diangkat keluar target penempatan:

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

Coba sendiri

Ada banyak contoh TIY di bawah halaman.

Sintaksis

Pada HTML:

<elemen ondragleave="myScript">

Coba sendiri

Pada JavaScript:

objek.ondragleave = function(){myScript};

Coba sendiri

Pada JavaScript, gunakan metode addEventListener():

objek.addEventListener("dragleave", myScript);

Coba sendiri

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

Detil teknis

Bubbling: Didukung
Dapat dibatalkan: Tidak didukung
Tipe event: DragEvent
Tanda tangan 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
ondragleave 4.0 9.0 3.5 6.0 12.0

Contoh

Pertunjukan untuk semua event geser dan lepas yang mungkin:

<p draggable="true" id="dragtarget">Gerser 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 oleh 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";
});
/* ----------------- Event yang diaktifkan di target penempatan ----------------- */
// Saat elemen p yang dapat diangkat 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/elemen tidak dapat ditempatkan di dalam elemen lain. Untuk memungkinkan penempatan, kita harus mencegah pengolahan bawaan elemen
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Saat elemen p yang dapat diangkat meninggalkan droptarget, atur ulang gaya bingkai DIV
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* Pada saat drop - menghentikan pengolahan bawaan browser untuk data (dalam hal menempatkan link bawaan)
Atur ulang warna teks dan garis bingkai DIV
Dapatkan data yang diangkat menggunakan metode dataTransfer.getData()
Data yang dapat diangkat adalah id elemen yang dapat diangkat ("drag1")
Tambahkan elemen yang dapat diangkat ke dalam elemen tujuan
*/
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: Drag and Drop HTML5

Panduan Referensi HTML: Properti draggable HTML