
创建一个container的拖拽区域,左边准备放课程,然后给每一个div设置同一个draggable为truetrue,即允许拖拽


然后创建两个table里面的格子分布如下所示


<script>
// container是可拖拽区域,超出这个范围无效
const container = document.querySelector('.container');
// 获得那两个table
const table = document.querySelectorAll('.table')
// 拖拽开始位置
container.ondragstart = (e) => {
// 图表示拖拽
e.dataTransfer.effectAllowed = 'move';
// 将拖拽的文本内容设置在拖拽的参数里面
e.dataTransfer.setData('text', e.target.innerText);
}
// 定义拖拽的过程(必不可少,因为这个过程一直记录拖拽的位置!!)
container.ondragover = (e) => {
e.preventDefault();
}
// 拖拽进入组件的事件
// table.ondragenter = (e) => {
// }
// // 拖拽离开组件的事件
// table.ondragleave = (e) => {
// }
// 给两个table的松手时候的位置设置拖拽事件
table.forEach(item => {
item.ondrop = (e) => {
e.preventDefault();
// 获得拖拽体中开始记录的文本内容
const courseName = e.dataTransfer.getData('text');
// 将拖拽到的区域填入文本内容
e.target.innerHTML = `${courseName} `;
}
})
script>


Document
课程表
语文
数学
英语
音乐
政治
历史
体育