【发布时间】:2021-02-19 17:09:29
【问题描述】:
我试图通过单击一个按钮来插入整个 HTML 元素,它确实有效,但它应该是一个可拖动元素,就像手动插入 HTML 作为示例一样,但是当尝试拖动我在控制台上收到此错误:无法在 'Node' 上执行 'insertBefore':参数 1 不是 'Node' 类型
拖动函数是这样写的:
dropzones.forEach(dropzone => {
dropzone.addEventListener('dragover', e => {
e.preventDefault
const draggable = document.querySelector('.dragging')
const afterElement = getDragAfterElement(dropzone, e.clientY)
if (afterElement == null) {
dropzone.appendChild(draggable)
} else {
dropzone.insertBefore(draggable, afterElement)
}
})
})
这是我尝试添加元素的方式:
addTaskButton.addEventListener("click", () => {
let title = prompt('Set the title');
let description = prompt('Set the description');
const date = new Date().toLocaleDateString();
let html =
<div class="draggable card" draggable="true">
<div class="card-wrapper">
<div class="card-header">
<p>${date}</p>
<div class="card-bullet"></div>
</div>
<h2 id="task-title">${title}</h2>
<div class="task-members">
<div class="task-member img"></div>
<div class="task-member img"></div>
<div class="task-member add"></div>
</div>
<div class="task-text">
<h3>Description</h3>
<p>${description}.</p>
</div>
</div>
</div>
board.innerHTML += html
})
非常感谢您!
【问题讨论】:
-
嗨 Filipe,欢迎来到 Stack Overflow。在被拖动的卡片上设置的
draggable类在哪里 - 在控制台上记录document.querySelector('.dragging')是否确认它是一个 (.card-wrapper) 元素?` -
记录为空
标签: javascript html node.js web