ondragstartEreignis

事件对象参考手册Event-Objekt

Beispiele

JavaScript ausführen, wenn der Benutzer das <p>-Element zu ziehen beginnt:

<p draggable="true" ondragstart="myFunction(event)">Zieh mich!</p>

Selbst ausprobieren »

Weitere Beispiele finden Sie am Ende dieses Artikels.


Definition und Verwendung

Das ondragstart-Ereignis wird ausgelöst, wenn der Benutzer beginnt, ein Element oder ausgewählten Text zu ziehen.

Drag and Drop ist eine sehr verbreitete Funktion in HTML5. Weitere Informationen finden Sie in unserem HTML-Tutorial:HTML5 Drag and Drop。

Hinweis:Um ein Element ziehbar zu machen, müssen Sie das HTML5-draggable-Attribut verwenden.

Tipp:Links und Bilder sind standardmäßig ziehbar und benötigen nicht das draggable-Attribut.

Die folgenden Ereignisse werden während des Drag-and-Drop-Vorgangs ausgelöst:

  • Ereignisse, die auf dem Drag-Ziel ausgelöst werden(Quellelement):
    • ondragstart - wird ausgelöst, wenn der Benutzer mit dem Ziehen eines Elements beginnt
    • ondrag- wird ausgelöst, während ein Element gezogen wird
    • ondragend- wird ausgelöst, nachdem der Benutzer das Ziehen eines Elements beendet hat

  • Ereignisse, die auf dem Drop-Ziel ausgelöst werden:
    • ondragenter- Dieses Ereignis wird ausgelöst, wenn das gezogene Objekt in seinen Container eintritt.
    • ondragover- Dieses Ereignis wird ausgelöst, wenn ein gezogenes Objekt innerhalb des Containers eines anderen Objekts gezogen wird.
    • ondragleave- Dieses Ereignis wird ausgelöst, wenn das gezogene Objekt seinen Container verlässt.
    • ondrop- Dieses Ereignis wird ausgelöst, wenn die Maustaste während eines Ziehvorgangs losgelassen wird.

Browser-Unterstützung

Hinweis:Während ein Element gezogen wird, wird das ondragover-Ereignis alle 350 Millisekunden ausgelöst.

Ereignis
ondragstart 4.0 9.0 3.5 6.0 12.0


Syntax

In HTML:

<element ondragstart="myScript">Selbst ausprobieren

In JavaScript:

object.ondragstart=function(){myScript};Selbst ausprobieren

In JavaScript unter Verwendung der addEventListener()-Methode:

object.addEventListener("dragstart", myScript);Selbst ausprobieren

Hinweis:Internet Explorer 8 und frühere IE-Versionen unterstützen die MethodeaddEventListener()nicht.


Technische Details
Blubbert: Ja
Abbrechbar: Ja
Ereignistyp: DragEvent
Unterstützte HTML-Tags: Alle HTML-Elemente


Examples

Weitere Beispiele

Beispiel

Das folgende Beispiel demonstriert alle Drag-and-Drop-Ereignisse:

/* Wird während des Ziehens ausgelöst */
document.addEventListener("dragstart", function(event) {
// Die Methode dataTransfer.setData() legt den Datentyp und die gezogenen Daten fest
    event.dataTransfer.setData("Text", event.target.id);
// Gibt etwas Text aus, wenn das p-Element gezogen wird
document.getElementById("demo").innerHTML = "Ziehen des p-Elements wird gestartet.";
// Die Deckkraft des gezogenen Elements ändern
    event.target.style.opacity = "0.4";
});
// Die Farbe des Ausgabetexts ändern, während das p-Element gezogen wird
document.addEventListener("drag", function(event) {
    document.getElementById("demo").style.color = "red";
});
// Wenn das Ziehen des p-Elements beendet ist, etwas Text ausgeben und die Deckkraft zurücksetzen
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "Das Ziehen des p-Elements wurde beendet";
    event.target.style.opacity = "1";
});
/* Wird ausgelöst, nachdem das Ziehen abgeschlossen ist */
// Wenn das p-Element in das Drop-Ziel gezogen wird, ändere den Rahmenstil des div
document.addEventListener("dragenter", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "3px dotted red";
    }
});
// Standardmäßig können Daten/Elemente nicht in andere Elemente gezogen und dort abgelegt werden. Für das Ablegen müssen wir das Standardverhalten des Elements verhindern
document.addEventListener("dragover", function(event) {
    event.preventDefault();
});
// Wenn das ziehbare p-Element das Drop-Ziel verlässt, setze den Rahmenstil des div zurück
document.addEventListener("dragleave", function(event) {
    if ( event.target.className == "droptarget" ) {
        event.target.style.border = "";
    }
});
/* Beim Drop: Verhindern Sie die Standardbehandlung von Daten durch den Browser (Links werden standardmäßig beim Drop geöffnet)
Farbe des Ausgabetexts und Rahmenfarbe des DIV zurücksetzen
Verwenden Sie die Methode dataTransfer.getData(), um die gezogenen Daten abzurufen
Die ID des gezogenen Datenelements ("drag1")
Das gezogene Element an das Drop-Element anhängen */
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));
    }
});

Selbst ausprobieren »


Verwandte

HTML-Tutorial:HTML5 Drag and Drop

HTML-Referenzhandbuch:HTML-Attribut draggable


事件对象参考手册Event-Objekt Weitere Erweiterungen