ເຫດການ ondragover
定义和用法
当可拖动元素或文本选择被拖动到有效放置目标上时,会发生 ondragover 事件。
ໂດຍກົດໄດ້ທີ່ບໍ່ສາມາດຖອນຂໍ້ມູນ/ສິ່ງອອກຈາກສິ່ງອື່ນ. ເພື່ອອະນຸຍາດການຈຸດຍົກຂວັນ,ພວກເຮົາຕ້ອງການຢຸດການຈັດການຈົບຖານສະຫຼາກຂອງສິ່ງ. ນັ້ນແມ່ນການເຮັດດ້ວຍການເອິ້ນ ການຈັດການຈົບຖານສະຫຼາກຂອງພວກມາດັບສັບ ondragover event.preventDefault()
ພວກມັນແມ່ນພາກສ່ວນທີ່ຄົງທີ່ຂອງ HTML5. ມັນແມ່ນການ "ຖົ່ມ" ໜຶ່ງສິ່ງ ແລະ ຖົ່ມຫາຈຸດອື່ນ. ເພື່ອຮຽນຮູ້ຫຼາຍກວ່າເຂົານັ້ນ,ການອ່ານອິດສະຫຼະຂອງພວກເຮົາ ການຖອນຖານ HTML5HTML
ບັນດາຄວາມເວົ້າເພື່ອເຮັດໃຫ້ສິ່ງສາມາດຖົ່ມຫາຈຸດຍົກຂວັນໄດ້,ຂໍ້ສະເໜີໃຫ້ນຳໃຊ້ HTML ທະບຽນ draggable HTML5.
ຄຳແນະນຳ:ໂດຍກົດໄດ້ທີ່ຍັງບໍ່ມີທະບຽນ draggable 属性,ມັນຈະສາມາດຖົ່ມສິ່ງໄດ້
ໃນຂະນະທີ່ມີການຖົ່ມຫາຈຸດຍົກຂວັນຈະມີຫຼາຍພວກມາດັບສັບທີ່ຈະຖືກໃຊ້ແລະອາດເກີດຂື້ນ
ພວກມາດັບສັບທີ່ຖືກກະຕຸ້ນໃນເປັນເປົ້າເຫດສາຍສານຖົ່ມຫາ:
- ondragstart - ຈະເກີດຂື້ນເມື່ອຜູ້ນຳໃຊ້ເລີ່ມຖົ່ມສິ່ງ
- ondrag - ຈະເກີດຂື້ນເມື່ອສິ່ງຖົ່ມຫາຈຸດຍົກຂວັນ
- ondragend - ຈະເກີດຂື້ນເມື່ອຜູ້ນຳໃຊ້ສຳເລັດການຖົ່ມສິ່ງ
ພວກມາດັບສັບທີ່ຖືກກະຕຸ້ນໃນຈຸດຍົກຂວັນ:
- ondragenter - ຈະເກີດຂື້ນເມື່ອສິ່ງຖົ່ມເຂົ້າໃນຈຸດຍົກຂວັນ
- ondragover - ຈະເກີດຂື້ນເມື່ອມີສິ່ງຖົ່ມຫາຈຸດຍົກຂວັນ
- ondragleave - ຈະເກີດຂື້ນເມື່ອມີການຖົ່ມສິ່ງອອກຈາກຈຸດຍົກຂວັນ
- ondrop - ຈະເກີດຂື້ນເມື່ອມີການຖົ່ມສິ່ງຫາຈຸດຍົກຂວັນ
ບັນດາຄວາມເວົ້າໃນຂະນະທີ່ການຖົ່ມສິ່ງໃນຫຼັກຈຸດປະສົມກັນ,ພວກມາດັບສັບ ondragover ຈະຖືກກະຕຸ້ນບໍ່ລວມ 350 ວິນາທີ
ຄວາມນຳໃຊ້
ດຳເນີນ JavaScript ເມື່ອມີການຖົ່ມສິ່ງໄປຫາຈຸດຍົກຂວັນ
<div ondragover="myFunction(event)"></div>
ມີຫຼາຍຄວາມເວົ້າ TIY ຢູ່ດ້ານລຸ່ມຂອງເວັບໄຊ
ຂອບເຂລະຄັວນ
ໃນ HTML:
<element ondragover="myScript">
ໃນ JavaScript:
object.ondragover = function(){myScript};
ໃນ JavaScript,ນຳໃຊ້ພວກມາດັບສັບ addEventListener()
object.addEventListener("dragover", myScript);
ບັນດາຄວາມເວົ້າບໍ່ສາມາດສະໜັບສະໜູນ Internet Explorer 8 ຫຼືອັນພື້ນຖານ addEventListener() method.
Technical Details
Bubble: | Supported |
---|---|
Cancelable: | Supported |
Event type: | ເອັມໄອ້ມາສະໂຕແບບ DragEvent |
Supported HTML tags: | All HTML elements |
DOM Version: | Level 3 Events |
Browser Support
ເຂດຈຳນວນຂອງ browser ທີ່ເປັນໄປຕາມ event
Event | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondragover | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
ຫຼາຍບົດສະຫຼຸບ
ການສະແດງຂອງ event ທີ່ສາມາດຖອນຫຼາຍບ່ອນ
<p draggable="true" id="dragtarget">ຖອນຂ້ອຍ!</p> <div class="droptarget">ຍິນຍານບຸກບາດນີ້!</div> <script> /* ----------------- Event ທີ່ຖືກຈຸດຢູ່ໃນເປົ້າຖອນ ----------------- */ document.addEventListener("dragstart", function(event) { // dataTransfer.setData() method ກຳນົດຊີ້ວິທະຍາຂອງ data ທີ່ຖອນ event.dataTransfer.setData("Text", event.target.id); // ທີ່ເລີ່ມຖອນ p element ທີ່ອອກມາຄຳຂັດ document.getElementById("demo").innerHTML = "ເລີ່ມຖອນ p element."; // ປ່ຽນຄວາມກະຈັງຂອງບັນດາ element ທີ່ສາມາດຖອນ event.target.style.opacity = "0.4"; }); // ທີ່ຖອນ p element ທີ່ອອກມາປ່ຽນສີຂອງຄຳຂັດ document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // ສຳເລັດການຖອນ p element ທີ່ອອກມາຄຳຂັດແລະປ່ຽນຄວາມກະຈັງ document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "ສຳເລັດການຖອນ p element."; 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 = ""; } }); /* ພາຍຫຼັງຖອນ - ປ້ອງກັນການດຳເນີນຄືນໄດ້ໂດຍຄອບບອກປະຊາຊົນ (ປະກອບສ່ວນທີ່ຖືກຕິດຕັ້ງຈະເປີດເວັບໄຊ) ປ່ຽນສະພາບສີຂອງຂີ້ຄວາມອອກສຽງແລະສີກະເບື້ອງຂອງ 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>