Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เหตุการณ์ใดเกิดขึ้นเมื่อองค์ประกอบที่ลากอยู่เหนือเป้าหมายใน JavaScript

เหตุการณ์ ondragover จะถูกกระตุ้นเมื่อองค์ประกอบที่ถูกลาก (dragged element) อยู่เหนือเป้าหมายการวาง (drop target) ลองรันโค้ดด้านล่างเพื่อเรียนรู้การใช้งานเหตุการณ์ ondragover ใน JavaScript:

ตัวอย่าง

<!DOCTYPE HTML>
<html>
  <head>
    <style>
      .drag {
        float: left;
        width: 100px;
        height: 35px;
        border: 2px dashed #876587;
        margin: 15px;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <div class="drag" ondrop="drop(event)" ondragover="dropNow(event)">
      <p ondragstart="dragStart(event)" ondragend="dragEnd(event)" draggable="true" id="dragtarget">Drag!</p>
    </div>
    <div class="drag" ondrop="drop(event)" ondragover="dropNow(event)"></div>
    <div id="box"></div>
    <p>Drag the left box to the right or drag the right box to the left.</p>
    <script>
      function dragStart(event) {
        event.dataTransfer.setData("Text", event.target.id);
      }
      function dropNow(event) {
        event.preventDefault();
      }
      function dragEnd(event) {
        document.getElementById("box").innerHTML = "Dragging ends!";
      }
      function drop(event) {
        event.preventDefault();
        var data = event.dataTransfer.getData("Text");
        event.target.appendChild(document.getElementById(data));
        document.getElementById("box").innerHTML = "The element dropped successfully!";
      }
    </script>
  </body>
</html>

จุดสำคัญ: ใน ondragover ต้องเรียก event.preventDefault() เพื่ออนุญาตให้วางได้ (โดยปกติเบราว์เซอร์ไม่อนุญาต) เหตุการณ์นี้ยิงซ้ำๆ ตลอดที่องค์ประกอบอยู่เหนือพื้นที่วาง