JavaScript dragend 事件

admin發表於2019-10-06

此事件會在拖拽結束時觸發,比如在PC端就是鬆開滑鼠。

dragend事件主要特點簡單羅列如下:

(1).事件處理函式註冊於源元素之上。

(2).只要拖動結束,此事件必定觸發,無論拖動預期是否實現。

關於事件處理函式註冊,可以參閱如何註冊事件處理函式一章節。

下面通過一段程式碼例項對此事件進行一下簡單演示:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
p{
  width:100px;
  height:50px;
  background-color:red;
}
#box {
  width:300px; 
  height:100px;
  background-color:#ccc;
}
</style>
<script>
window.onload = () =>{
  let odiv=document.getElementById("box");
  let op=document.getElementById("p");

  op.ondragstart = (ev) => {
    ev.dataTransfer.setData("Text",ev.target.id);
  }
  odiv.ondragover = (ev) => {
    ev.preventDefault();
  }
  odiv.ondrop = (ev) => {
    ev.preventDefault();
    ev.stopPropagation();
    let data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
  }
  // 拖拽結束時觸發
  op.ondragend = (ev) => {
    console.log("拖拽結束")
  }
}
</script>
</head>
<body>
<p draggable="true" id="p"></p>
<div id="box"></div>
</body>
</html>

當拖拽結束時,此事件觸發,重點強調如下幾點:

(1).事件註冊在源元素之上。

(2).拖拽無論是否達到預期,只要拖拽結束即可觸發(例如PC端鬆開滑鼠)。

(3).這一點與drop事件不同,具體參閱JavaScript drop 事件一章節。

相關文章