Peristiwa ondragleave

Definisi dan penggunaan

Acara ondragleave terjadi saat elemen yang dapat diseret atau pilihan teks meninggalkan target tempatkan yang berlaku.

Acara ondragenter dan ondragleave dapat membantu pengguna mengerti saat elemen yang dapat diseret akan masuk atau meninggalkan target tempatkan. Contohnya, dapat menetapkan warna latar belakang saat elemen memasuki target tempatkan dan menghapus warna saat elemen meninggalkan target.

Seret dan lepas adalah fungsi yang sangat umum di HTML5. Itu seperti saat Anda "menangkap" objek dan menariknya ke posisi yang berbeda. Untuk belajar lebih lanjut, baca tentang Tolak Belok HTML5Tutorial HTML.

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

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

Pada berbagai tahap operasi seret dan lepas, banyak acara yang digunakan, dan mungkin terjadi:

Acara 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 menarik elemen

Acara yang diaktifkan di target tempatkan:

  • ondragenter - Terjadi saat elemen yang diangkat memasuki target tempatkan
  • ondragover - Terjadi saat elemen yang diangkat berada di target tempatkan
  • ondragleave - Terjadi saat elemen yang diangkat meninggalkan target tempatkan
  • ondrop - Terjadi saat elemen yang diangkat ditempatkan di target tempatkan

Contoh

Eksekusi JavaScript saat elemen yang dapat diangkat ditempatkan di target tempatkan:

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

Cuba sendiri

Ada lagi contoh TIY di bawah halaman.

Sintaksis

Pada HTML:

<elemen ondragleave="myScript">

Cuba sendiri

Pada JavaScript:

objek.ondragleave = function(){myScript};

Cuba sendiri

Pada JavaScript, gunakan metode addEventListener():

objek.addEventListener("dragleave", myScript);

Cuba sendiri

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

Rincian teknikal

Bubbling: Didukung
Boleh dicabut: Tidak didukung
Jenis peristiwa: DragEvent
Tag HTML yang didukung: Semua elemen HTML
Versi DOM: Peristiwa Level 3

Dukungan browser

Angka di dalam tabel menunjukkan versi pertama browser yang mendukung peristiwa ini.

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

Contoh

Pertunjukan untuk semua peristiwa seret dan lepas yang mungkin:

<p draggable="true" id="dragtarget">Seret saya!</p>
<div class="droptarget">Jatuhkan di sini!</div>
<script>
/* ----------------- Peristiwa yang diaktifkan di sisi objek tujuh ----------------- */
document.addEventListener("dragstart", function(event) {
  // method dataTransfer.setData() mengatur jenis dan nilai data yang diseret
  event.dataTransfer.setData("Text", event.target.id);
  // Menyempan teks beberapa semasa 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 = "merah";
});
// Menyempan teks beberapa dan mengatur kecerahan selepas 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 tujuan penempatan ----------------- */
// Saat p elemen yang dapat digerakkan memasuki droptarget, ubah gaya pinggir DIV
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// Secara baku, data/element tidak dapat ditempatkan di dalam elemen lain. Untuk memungkinkan penempatan, kita harus menghalangi penggunaan baku elemen
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Saat p elemen yang dapat digerakkan meninggalkan droptarget, tetapkan gaya pinggir DIV
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* On drop - Halang penggunaan baku pemeriksaan data pereka (dalam tempat tarikan baku untuk membuka sebagai pautan)
Tetapkan warna teks output dan warna pinggir DIV
Dapatkan data yang didrag menggunakan metode dataTransfer.getData()
Data yang didrag adalah id elemen yang didrag ("drag1")
Menyambungkan elemen yang didrag 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>

Cuba sendiri

Laman yang berkenaan

Panduan HTML: Tarik dan Tumpahkan HTML5

Paparan Rujukan HTML: Properti draggable HTML