ondragenter 事件

Definition and Usage

Nangyayari ang ondragenter event kapag ang puwedeng ilipat na elemento o ang pagpili ng teksto ay pumasok sa wastong paglalagay na target.

Ang ondragenter at ondragleave events ay maaaring makatulong sa user na maunawaan kung isang puwedeng ilipat na elemento ay papasok o iwan sa paglalagay na target. Halimbawa, maaaring itakda ang kulay ng background kapag ang elemento ay pumasok sa target at alisin ang kulay kapag ang elemento ay iwan.

Drag and drop ay isang napakakaraniwang function sa HTML5. Ito ay kapag kaagad kumuha ka ng isang bagay at inililipat ito sa iba't ibang lokasyon. Para matuto ng mas marami, basahin ang aming tungkol sa HTML5 拖放HTML tutorial.

Komentaryo:Para gawing puwedeng ilipat ang elemento, gamit ang pangkalahatang HTML5 draggable attribute.

Mga tagubilin:Bilang default, ang mga link at ang mga imahe ay puwedeng ilipat, hindi kailangan ng draggable attribute.

May maraming kaganapan na ginagamit sa iba't ibang yugto ng paglipat at maaaring mangyari:

Mga kaganapan na nangyayari sa target na puwedeng ilipat (source element):

  • ondragstart - Kapag nagsimula ang user ang paglipat ng elemento
  • ondrag - Kapag ang elemento ay inililipat
  • ondragend - Kapag nakumpleto ng user ang paglipat ng elemento

Mga kaganapan sa pagpasok sa paglalagay na target:

  • ondragenter - Kapag ang inililipat na elemento ay pumasok sa paglalagay na target
  • ondragover - Kapag ang inililipat na elemento ay nasa paglalagay na target
  • ondragleave - Kapag ang inililipat na elemento ay iwan sa paglalagay na target
  • ondrop - Kapag ang inililipat na elemento ay ilagay sa paglalagay na target

Sample

Ang JavaScript ay isinasagawa kapag ang mahiwalay na elemento ay inilagay sa paglalagay na target:

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

亲自试一试

May mas maraming TIY example sa ibaba ng pahina.

Grammar

Sa HTML:

<element ondragenter="myScript">

亲自试一试

Sa JavaScript:

object.ondragenter = function(){myScript};

亲自试一试

Sa JavaScript, gamit ang addEventListener() method:

object.addEventListener("dragenter", myScript);

亲自试一试

Komentaryo:Internet Explorer 8 o mas maagang bersiyon ay hindi sumusuporta addEventListener() Method.

Detalye ng Teknolohiya

Bubbling: Suportado
Makakancela: Suportado
Uri ng Event: DragEvent
Suportadong HTML tag: Lahat ng HTML element
DOM Version: Level 3 Events

Suporta ng Browser

Ang mga numero sa talahanayan ay naglalarawan ng unang bersyon ng browser na nag-suporta sa event na ito.

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

Higit pang mga halimbawa

Mga gawain ng demo para sa lahat ng posibleng mga event ng pag-drag at pag-i-drop:

<p draggable="true" id="dragtarget">I-drag ko!</p>
<div class="droptarget">Mag-i-drop dito!</div>
<script>
/* ----------------- Sa event na nangyari sa target ng pag-drag ----------------- */
document.addEventListener("dragstart", function(event) {
  // I-set sa dataTransfer.setData() method ang uri ng datos at ang halaga ng inidrag na datos
  event.dataTransfer.setData("Text", event.target.id);
  // Magpakita ng ilang teksto kapag nagsimula ang pag-i-drag ang p element
  document.getElementById("demo").innerHTML = "Nagsimula ang pag-i-drag ang p element.";
  // Ayusin ang opakidad ng puwedeng i-drag na elemento
  event.target.style.opacity = "0.4";
});
// Pag-i-drag ang p element, ayusin ang kulay ng teksto sa output
document.addEventListener("drag", function(event) {
  document.getElementById("demo").style.color = "red";
});
// Natapos na i-drag ang p element at magpakita ng ilang teksto at i-reset ang opakidad
document.addEventListener("dragend", function(event) {
  document.getElementById("demo").innerHTML = "Natapos na i-drag ang p element.";
  event.target.style.opacity = "1";
});
/* ----------------- 在放置目标上触发的事件 ----------------- */
// 当可拖动的 p 元素进入 droptarget 时,改变 DIV 的边框样式
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// 默认情况下,不能在其他元素中放置数据/元素。为了允许放置,我们必须阻止元素的默认处理
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// 当可拖动的 p 元素离开 droptarget 时,重置 DIV 的边框样式
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* On drop - 防止浏览器对数据的默认处理(默认放置时以链接打开)
重置输出文本的颜色和 DIV 的边框颜色
使用 dataTransfer.getData() 方法获取拖动的数据
被拖拽的数据是被拖拽元素的 id ("drag1")
将被拖动的元素附加到放置元素中
*/
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>

亲自试一试

相关页面

HTML 教程:HTML5 拖放

HTML 参考手册:HTML draggable 属性