ondrop Evenement
Voorbeeld
Voer een JavaScript uit wanneer een versleepbaar element in een <div>-element wordt neergezet:
<div ondrop="myFunction(event)"></div>
Meer "Probeer het zelf" voorbeelden hieronder.
Definitie en gebruik
De gebeurtenis ondrop vindt plaats wanneer een versleepbaar element of tekstselectie op een geldig neerzetdoel wordt neergezet.
Slepen en neerzetten is een veel voorkomende functie in HTML5. Het is wanneer u een object "pakt" en naar een andere locatie sleept. Zie onze HTML-zelfstudie over HTML5 slepen en neerzetten voor meer informatie .
Opmerking: om een element versleepbaar te maken, gebruikt u het algemene HTML5 - attribuut voor verslepen.
Tip: Links en afbeeldingen zijn standaard versleepbaar en hebben het kenmerk verslepen niet nodig.
Er zijn veel gebeurtenissen die worden gebruikt, en kunnen optreden, in de verschillende stadia van een bewerking met slepen en neerzetten:
- Gebeurtenissen die zijn afgevuurd op het versleepbare doel (het bronelement) :
- ondragstart - treedt op wanneer de gebruiker een element begint te slepen
- ondrag - treedt op wanneer een element wordt gesleept
- ondragend - treedt op wanneer de gebruiker klaar is met het slepen van het element
- Gebeurtenissen die zijn afgevuurd op het neerzetdoel:
- ondragenter - treedt op wanneer het gesleepte element het neerzetdoel binnengaat
- ondragover - treedt op wanneer het versleepte element zich boven het neerzetdoel bevindt
- ondragleave - treedt op wanneer het versleepte element het neerzetdoel verlaat
- ondrop - treedt op wanneer het gesleepte element op het neerzetdoel wordt neergezet
Browserondersteuning
De cijfers in de tabel geven de eerste browserversie aan die de gebeurtenis volledig ondersteunt.
Event | |||||
---|---|---|---|---|---|
ondrop | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Syntaxis
In HTML:
<element ondrop="myScript">
In javascript:
object.ondrop = function(){myScript};
In JavaScript, met behulp van de addEventListener()-methode:
object.addEventListener("drop", myScript);
Opmerking: de methode addEventListener() wordt niet ondersteund in Internet Explorer 8 en eerdere versies.
Technische details
bubbels: | Ja |
---|---|
Annuleerbaar: | Ja |
Evenementtype: | DragEvent |
Ondersteunde HTML-tags: | Alle HTML-elementen |
DOM-versie: | Niveau 3 Evenementen |
Meer voorbeelden
Voorbeeld
Een demonstratie van ALLE mogelijke slepen en neerzetten gebeurtenissen:
<p draggable="true" id="dragtarget">Drag me!</p>
<div class="droptarget">Drop here!</div>
<script>
// Events fired on the drag target
document.addEventListener("dragstart", function(event) {
// The dataTransfer.setData() method sets the data type and the value of the dragged data
event.dataTransfer.setData("Text", event.target.id);
// Output some text when starting to drag the p element
document.getElementById("demo").innerHTML = "Started to drag the p element.";
// Change the opacity of the draggable element
event.target.style.opacity = "0.4";
});
// While dragging the p element, change the color of the output text
document.addEventListener("drag", function(event) {
document.getElementById("demo").style.color = "red";
});
// Output some text when finished dragging the p element and reset the opacity
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "Finished dragging the p element.";
event.target.style.opacity = "1";
});
// Events fired on the drop target
// When the draggable p element enters the droptarget, change the DIVS's border style
document.addEventListener("dragenter", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "3px dotted red";
}
});
// By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element
document.addEventListener("dragover", function(event) {
event.preventDefault();
});
// When the draggable p element leaves the droptarget, reset the DIVS's border style
document.addEventListener("dragleave", function(event) {
if ( event.target.className == "droptarget" ) {
event.target.style.border = "";
}
});
/* On drop - Prevent the browser default handling of the data (default is open as link on drop)
Reset the color of the output text and DIV's border color
Get the dragged data with the dataTransfer.getData() method
The dragged data is the id of the dragged element ("drag1")
Append the dragged element into the drop element
*/
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>
Gerelateerde pagina's
HTML-zelfstudie: HTML5 slepen en neerzetten
HTML-referentie: HTML-versleepbaar kenmerk