为什么无法通过 DOM 将任务归类到已完成状态?

为什么无法通过 dom 将任务归类到已完成状态?

解决无法通过 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 将任务从正在进行部分归类到已完成部分。

以上就是为什么无法通过 DOM 将任务归类到已完成状态?的详细内容,更多请关注www.sxiaw.com其它相关文章!