ondragenter-tapahtuma

Määritelmä ja käyttö

Kun vedettävä elementti tai tekstivalinta siirtyy kelvolliseen asettamaan kohteeseen, tapahtuu ondragenter-tapahtuma.

ondragenter- ja ondragleave-tapahtumista, jotka voivat auttaa käyttäjiä ymmärtämään, että jokin vedettävä elementti on tulossa tai poistumassa asettamaan kohteesta. Esimerkiksi voit asettaa taustavärin, kun vedettävä elementti tulee asettamaan kohteeseen, ja poistaa värin, kun elementti poistuu kohdesta.

Vedä ja aseta on HTML5:ssä erittäin yleinen toiminto. Tämä tarkoittaa, että kun sinä "kätkeät" objektin ja vedät sen eri paikalle. Jos haluat oppia lisää, lue meidän tietomme HTML5:n vetäminen ja pudottaminenHTML-opetusohjelmaa.

Huomautus:Jos haluat tehdä elementin vedettäväksi, käytä globaalia HTML5 draggable-ominaisuus

Vinkki:Oletuksena linkit ja kuvat ovat vedettävissä, eikä tarvita draggable-ominaisuutta.

Erilaisten vetämis- ja asettamisvaiheiden aikana käytetään monia tapahtumia, ja ne voivat tapahtua:

Vedettävissä kohdissa (lähtöelementissä) käytävät tapahtumat:

  • ondragstart - Kun käyttäjä alkaa vetää elementtiä
  • ondrag - Kun elementti vedetään
  • ondragend - Kun käyttäjä suorittaa vedon elementin kanssa

Asetuskohteessa käytävät tapahtumat:

  • ondragenter - Kun vedettävä elementti siirtyy asettamaan kohteeseen
  • ondragover - Kun vedettävä elementti on asettamaan kohteessa
  • ondragleave - Kun vedettävä elementti poistuu asettamaan kohteesta
  • ondrop - Kun vedettävä elementti asetetaan asettamaan kohteeseen

Esimerkki

Suoritetaan JavaScript, kun vetävyyskelpoisuus-elementti siirtyy asettamaan kohteeseen:

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

Kokeile itse

Sivun alaosassa on lisää TIY-esimerkkejä.

Syntaksi

HTML:ssä:

<elementti ondragenter="myScript">

Kokeile itse

JavaScriptissa:

objekti.ondragenter = function(){myScript};

Kokeile itse

JavaScriptissa käytetään addEventListener() -metodia:

objekti.addEventListener("dragenter", myScript);

Kokeile itse

Huomautus:Internet Explorer 8 tai aikaisemmat versiot eivät tue addEventListener() menetelmä

Tekninen yksityiskohta

Päihteessä: Tuki
Peruutettavissa: Tuki
Tapahtumatyypit: DragEvent
Tuetut HTML-elementit: Kaikki HTML-elementit
DOM versio: Taso 3 tapahtumat

Selaimen tuki

Taulukossa olevat numerot osoittavat ensimmäisen selaimen version, joka tukee tapahtumaa täysin.

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

Lisää esimerkkejä

Kaikkien mahdollisten vetämisen ja pudottamisen tapahtumien esimerkki:

<p draggable="true" id="dragtarget">Vedä minua!</p>
<div class="droptarget">Laske täällä!</div>
<script>
/* ----------------- DRASTA KOHDISTA TAPAHTUVAT TAPAHTUMAT ----------------- */
document.addEventListener("dragstart", function(event) {
  // dataTransfer.setData()-menetelmä asettaa vedetyn datan tyyppin ja arvon
  event.dataTransfer.setData("Text", event.target.id);
  // Kun aloitetaan vetämään p-elementtiä, tulosta tekstiä
  document.getElementById("demo").innerHTML = "Aloitetaan vetämään p-elementtiä.";
  // Muuta vetäytettävän elementin läpinäkyvyys
  event.target.style.opacity = "0.4";
});
// Kun vetät p-elementtiä, muuta tulostustekstin väri
document.addEventListener("drag", function(event) {
  document.getElementById("demo").style.color = "red";
});
// Kun p-elementin vetäminen on valmis, tulosta tekstiä ja palauta läpinäkyvyys
document.addEventListener("dragend", function(event) {
  document.getElementById("demo").innerHTML = "Valmis vetämään p-elementtiä.";
  event.target.style.opacity = "1";
});
/* ----------------- Asettamispisteessä aktivoitavat tapahtumat ----------------- */
// Kun vetävä p-elementti menee droptargetiin, muuta DIV:n reunavyöhykkeen tyyli
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// Oletusarvoisesti ei voi asettaa dataa/elementtiä muihin elementteihin. Salliaksemme asettamisen, meidän on estettävä elementin oletusarvoinen käsittely
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// Kun vetävä p-elementti lähtee droptargetista, nollaa DIV:n reunavyöhykkeen tyyli
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* Kun pudotetaan - estä selaimen oletusarvoinen käsittely tietoja (oletusasennossa linkkinä avataan) */
Nollaa tulostetun tekstin ja DIV:n reunaväri
Hanki vedetyn datan dataTransfer.getData() metodilla
Vedetään data on vedetyn elementin id ("drag1")
Liitä vedetty elementti asettamispisteeseen
*/
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>

Kokeile itse

Liittyvät sivut

HTML oppitunti: HTML5 vetäminen ja pudottaminen

HTML viittausoppikirja: HTML draggable ominaisuus