ondragendเหตุการณ์
ตัวอย่าง
เรียกใช้ JavaScript เมื่อผู้ใช้ลากองค์ประกอบ <p> เสร็จแล้ว:
<p draggable="true" ondragend="myFunction(event)">Drag me!</p>
ตัวอย่าง "ลองใช้เอง" เพิ่มเติมด้านล่าง
ความหมายและการใช้งาน
เหตุการณ์ ondragend เกิดขึ้นเมื่อผู้ใช้ลากองค์ประกอบหรือการเลือกข้อความเสร็จแล้ว
การลากและวางเป็นคุณลักษณะทั่วไปใน HTML5 คือเมื่อคุณ "คว้า" วัตถุแล้วลากไปยังตำแหน่งอื่น สำหรับข้อมูลเพิ่มเติม โปรดดูบทช่วยสอน HTML ของเราเกี่ยวกับHTML5 Drag and Drop
หมายเหตุ:ในการทำให้องค์ประกอบสามารถลากได้ ให้ใช้ แอตทริบิวต์ ที่ ลาก ได้ของ HTML5 ทั่วโลก
เคล็ดลับ:ลิงก์และรูปภาพสามารถลากได้ตามค่าเริ่มต้น และไม่ต้องการแอตทริบิวต์ที่ลากได้
มีเหตุการณ์มากมายที่ใช้ และสามารถเกิดขึ้นได้ในขั้นตอนต่างๆ ของการดำเนินการลากแล้วปล่อย:
- เหตุการณ์ที่เกิดขึ้นกับเป้าหมายที่ลากได้ (องค์ประกอบต้นทาง) :
- ondragstart - เกิดขึ้นเมื่อผู้ใช้เริ่มลากองค์ประกอบ
- ondrag - เกิดขึ้นเมื่อองค์ประกอบถูกลาก
- ondragend - เกิดขึ้นเมื่อผู้ใช้ลากองค์ประกอบเสร็จแล้ว
- เหตุการณ์ที่เกิดขึ้นกับเป้าหมายการดรอป:
- ondragenter - เกิดขึ้นเมื่อองค์ประกอบที่ลากเข้าสู่เป้าหมายการวาง
- ondragover - เกิดขึ้นเมื่อองค์ประกอบที่ลากอยู่เหนือเป้าหมายการวาง
- ondragleave - เกิดขึ้นเมื่อองค์ประกอบที่ถูกลากออกจากเป้าหมายการวาง
- ondrop - เกิดขึ้นเมื่อองค์ประกอบที่ลากถูกดร็อปบนเป้าหมายการวาง
รองรับเบราว์เซอร์
ตัวเลขในตารางระบุเบราว์เซอร์รุ่นแรกที่รองรับเหตุการณ์อย่างสมบูรณ์
Event | |||||
---|---|---|---|---|---|
ondragend | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
ไวยากรณ์
ใน HTML:
<element ondragend="myScript">
ในจาวาสคริปต์:
object.ondragend = function(){myScript};
ใน JavaScript โดยใช้เมธอด addEventListener() :
object.addEventListener("dragend", myScript);
หมายเหตุ:วิธีการaddEventListener()ไม่ได้รับการสนับสนุนใน Internet Explorer 8 และเวอร์ชันก่อนหน้า
รายละเอียดทางเทคนิค
ฟองอากาศ: | ใช่ |
---|---|
ยกเลิกได้: | ไม่ |
ประเภทเหตุการณ์: | DragEvent |
แท็ก HTML ที่รองรับ: | องค์ประกอบ HTML ทั้งหมด |
รุ่น DOM: | กิจกรรมระดับ 3 |
ตัวอย่างเพิ่มเติม
ตัวอย่าง
การสาธิตเหตุการณ์ลากและวางที่เป็นไปได้ทั้งหมด:
<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 ที่ลากได้