ondrop واقعی
تعریف و استفاده:
وقتی عنصر قابل جابجایی یا انتخاب متن روی هدف معتبر قرار میگیرد، رویداد ondrop رخ میدهد.
جابجایی در HTML5 یک ویژگی بسیار رایج است. یعنی وقتی یک شیء را "گرفتار" کرده و به مکان دیگری میکشید. برای یادگیری بیشتر، لطفاً مطالب ما را در مورد HTML5 ڈرگ اینڈ ڈراپآموزش HTML استفاده کنید.
توضیحات:برای اینکه عنصر قابل جابجایی باشد، از تنظیمات جهانی ویژگی draggable HTML5。
توضیحات:به طور پیشفرض، لینکها و تصاویر قابل جابجایی هستند و نیازی به ویژگی draggable نیست.
در مراحل مختلف عمل جابجایی، بسیاری از رویدادها استفاده میشوند و ممکن است رخ دهند:
رویدادهایی که در هدف قابل جابجایی (عنصر منبع) رخ میدهند:
- ondragstart - وقتی کاربر عمل جابجایی عنصر را شروع میکند، رخ میدهد
- ondrag - وقتی عنصر جابجا میشود، رخ میدهد
- ondragend - وقتی کاربر عمل جابجایی عنصر را به پایان میرساند، رخ میدهد
رویدادهایی که در هدف قرار داده میشوند:
- ondragenter - وقتی عنصر قابل جابجایی به هدف وارد میشود، رخ میدهد
- ondragover - وقتی عنصر قابل جابجایی روی هدف قرار دارد، رخ میدهد
- ondragleave - وقتی عنصر قابل جابجایی از هدف خارج میشود، رخ میدهد
- ondrop - وقتی عنصر قابل جابجایی روی هدف قرار میگیرد، رخ میدهد
مثال:
وقتی عناصر قابل جابجایی در عناصر <div> قرار میگیرند، جاوااسکریپت اجرا میشود:
<div ondrop="myFunction(event)"></div>
در پایین صفحه نمونههای بیشتری از TIY وجود دارد.
رابط:
در HTML:
<عنصر ondrop="myScript">
در جاوااسکریپت:
عنصر.ondrop = function(){myScript};
در جاوااسکریپت، از روش addEventListener() استفاده کنید:
عنصر.addEventListener("drop", myScript);
توضیحات:این نسخه از Internet Explorer 8 یا قدیمیتر پشتیبانی نمیکند روش addEventListener()。
جزئیات فنی
بالا رفتن: | پشتیبانی |
---|---|
قابل لغو: | پشتیبانی |
نوع رویداد: | DragEvent |
برچسبهای HTML پشتیبانی شده: | تمام عناصر HTML |
نسخه DOM: | رویدادهای سطح 3 |
پشتیبانی مرورگر
اعداد در جدول نشاندهنده نسخه اولین مرورگر پشتیبان از این رویداد هستند.
رویداد | کروم | IE | افراط | سافاری | آپرا |
---|---|---|---|---|---|
ondrop | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
مثالهای بیشتر
آموزش تمامی رویدادهای ممکن کشیدن و رها کردن:
<p draggable="true" id="dragtarget">کشیدن من!</p> <div class="droptarget">اینجا بیاندازید!</div> <script> /* ----------------- رویدادهایی که در هدف کشیدن فعال میشوند ----------------- */ document.addEventListener("dragstart", function(event) { // روش setData() dataTransfer دادههای نوع و مقدار مورد کشیده شده را تنظیم میکند event.dataTransfer.setData("Text", event.target.id); // پس از شروع کشیدن عنصر p، یک متن را چاپ کنید document.getElementById("demo").innerHTML = "شروع به کشیدن عنصر p شد."; // شفافیت عنصر قابل کشیدن را تغییر دهید event.target.style.opacity = "0.4"; }); // رنگ متن چاپ شده را در حال کشیدن عنصر p تغییر دهید document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // پس از انجام کشیدن عنصر p، یک متن را چاپ کنید و شفافیت را تنظیم کنید document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "پایان دادن به کشیدن عنصر p."; 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>