
解决无法通过 dom 将任务归类到已完成状态
问题描述:
在使用 javascript 实现 todolist 时,点击 checkbox 无法将任务自动归类到已完成部分。
代码修改:
将代码中的 from 全局替换为 form,因为 form 才表示数据归属。
以下是修改后的代码片段:
// 事件代理 - 监听 input 派发 change 事件
contentDom.addEventListener("change", (event) => {
let target = event.target;
if (
target.dataset.form === "todo" &&
target.tagName === "INPUT"
) {
let index = +target.dataset.index;
// 删除这一项
let value = data.todoArr.splice(index, 1)[0];
// 添加到 done
data.doneArr.push(value);
render(data);
} else if (
target.dataset.form === "done" &&
target.tagName === "INPUT"
) {
let index = +target.dataset.index;
let value = data.doneArr.splice(index, 1)[0];
data.todoArr.push(value);
render(data);
}
});
// 事件代理 - 监听 tag 派发 click 事件
contentDom.addEventListener("click", (event) => {
let target = event.target;
if (
target.dataset.form === "todo" &&
target.tagName === "IMG"
) {
let index = +target.dataset.index;
data.todoArr.splice(index, 1);
render(data);
} else if (
target.dataset.form === "done" &&
target.tagName === "IMG"
) {
let index = +target.dataset.index;
data.doneArr.splice(index, 1);
render(data);
}
});修改后,可以使用 dom 将任务从正在进行部分归类到已完成部分。










