أحدث البرامج التعليمية وتطوير الشبكة
 

حدث ondragstart

<كائن الحدث

مثال

تنفيذ جافا سكريبت عندما يبدأ المستخدم لسحب <p> العنصر:

<p draggable="true" ondragstart="myFunction(event)">Drag me!</p>
انها محاولة لنفسك »

أكثر "Try it Yourself" الأمثلة أدناه.


تعريف والاستخدام

يحدث هذا الحدث ondragstart عندما يبدأ المستخدم لسحب عنصر أو اختيار النص.

السحب والإسقاط هو سمة شائعة جدا في HTML5. ومن عند "grab" كائن واسحبه إلى موقع آخر. لمزيد من المعلومات، يرجى الاطلاع على ملف HTML على HTML5 السحب والإسقاط .

ملاحظة: لجعل عنصر قابل للسحب، استخدم HTML5 العالمية القابلة للسحب السمة.

نصيحة: وصلات، والصور هي القابلة للسحب افتراضيا، ولا تحتاج draggable السمة.

هناك العديد من الأحداث التي يتم استخدامها، ويمكن أن يحدث، في مراحل مختلفة من عملية السحب والإفلات:

  • الأحداث أطلق على الهدف القابل للسحب (the source element) :
    • ondragstart - يحدث عندما يبدأ المستخدم لسحب عنصر
    • ondrag - يحدث عندما يتم سحب عنصر
    • ondragend - يحدث عندما ينتهي المستخدم من سحب العنصر

  • الأحداث النار على هدف إفلات:
    • ondragenter - يحدث عندما يدخل عنصر جر انخفاض الهدف
    • ondragover - يحدث عندما يكون عنصر جره هو على هدف إفلات
    • ondragleave - يحدث عندما يترك عنصر جر انخفاض الهدف
    • ondrop - يحدث عندما يتم إسقاط عنصر جره على هدف إفلات

دعم المتصفح

الأرقام في الجدول تحدد أول نسخة متصفح يدعم بشكل كامل الحدث.

هدف
ondragstart 4.0 تسعة 3.5 6.0 12.0

بناء الجملة

في HTML:

في جافا سكريبت:

object .ondragstart=function(){ انها محاولة لنفسك »

في جافا سكريبت، وذلك باستخدام addEventListener() الأسلوب:

object .addEventListener("dragstart", myScript );
انها محاولة لنفسك »

ملاحظة: addEventListener() لا يتم اعتماد طريقة في Internet Explorer 8 والإصدارات السابقة.


تفاصيل تقنية

فقاعات: نعم فعلا
للإلغاء: نعم فعلا
نوع الحدث: DragEvent
علامات HTML المعتمدة: جميع عناصر HTML
صفحة DOM: مستوى 3 أحداث

أمثلة

مزيد من الأمثلة

مثال

مظاهرة من ALL السحب والإسقاط الأحداث المحتملة:

<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>
انها محاولة لنفسك »

صفحات ذات صلة

HTML دروس: سحب وإسقاط HTML5

HTML المرجعي: HTML سمة القابل للسحب


حدث كائن المرجعي كائن الحدث