嗨!大家好,昨天我们做了新增以及划掉的功能,今天让我们来完成删除跟切换标签,最後让完成的任务进入到完成区域。
addTodoElement().todoListArea.addEventListener("click",(e)=>{
// 判断点击的对象是不是删除,是的话就将任务删除。
if(e.target.classList[1] === "fa-trash-alt"){
e.target.parentNode.parentNode.remove()
}
if(e.target.classList[0] === "check" && e.target.checked){
e.target.parentNode.style.textDecoration = "line-through black"
}
if(e.target.classList[0] === "check" && !e.target.checked){
e.target.parentNode.style.textDecoration = "none"
}
})
let addTodoElement = () => {
let todoForm = document.querySelector(".todo-form")
let todoInput = document.querySelector(".todo-form input[type='text']")
let todoListArea = document.querySelector(".todo-list")
let listTemplate = document.querySelector("template")
let finishedArea =document.querySelector(".finished-list")
let tab = document.querySelector(".tab")
let working = document.querySelector(".working")
let finished = document.querySelector(".finished")
element = {
todoForm,
todoInput,
todoListArea,
listTemplate,
finishedArea,
tab,
working,
finished,
}
return element
}
addTodoElement().tab.addEventListener("click",(e)=>{
switch (e.target.classList[0]) {
case "working":
e.target.classList.add("active")
addTodoElement().finished.classList.remove("active")
addTodoElement().todoListArea.classList.add("active")
addTodoElement().finishedArea.classList.remove("active")
break;
case "finished":
e.target.classList.add("active")
addTodoElement().working.classList.remove("active")
addTodoElement().todoListArea.classList.remove("active")
addTodoElement().finishedArea.classList.add("active")
break;
}
})
let addTodoElement = () => {
let todoForm = document.querySelector(".todo-form")
let todoInput = document.querySelector(".todo-form input[type='text']")
let todoListArea = document.querySelector(".todo-list")
let listTemplate = document.querySelector("template")
let finishedArea =document.querySelector(".finished-list")
let tab = document.querySelector(".tab")
let working = document.querySelector(".working")
let finished = document.querySelector(".finished")
let finishedButton = document.querySelector(".finished-button")
element = {
todoForm,
todoInput,
todoListArea,
listTemplate,
finishedArea,
tab,
working,
finished,
finishedButton
}
return element
}
addTodoElement().finishedButton.addEventListener("click",()=>{
let tasks = Array.from(document.querySelectorAll(".task .check"))
//筛选出被划掉的任务
let checkedTasks = tasks.filter((task)=>{return task.checked})
checkedTasks.forEach((task)=>{
let clone = document.importNode(task.parentNode,true)
//将筛选任务填入完成区
addTodoElement().finishedArea.appendChild(clone)
task.parentNode.remove() //在任务区删除这些被划掉的任务
})
以上就是基本的删除、切换标签以及将任务填入完成区的功能。那如果有仔细看或是跟着做的朋友就会发现,一开始两个区域有「目前没有新的任务」以及「尚未有任务完成」,这两个区域都没有做处理。那这问题就留给明天,我们明天见!
>>: Nutanix API v3 – 搭配 Cloud-Init 创建一个 Linux VM
前言 各位早安,书接上回我们练习了一些基础list用法跟一些技巧,今天我们要来深入探讨list更多能...
前言 铁人倒数十天!利用最後时间来分享浏览器,这里才是真正的战场。 在 ECMAScript 上并没...
注:发文日和截图的日期不一定是同一天。 买进全家(5903)、统一超(2912) 今日损益:-7 原...
Kibana是一套分析和视觉化的软件,可以快速的帮助使用者更好的应用和分析资料。在接下来我们要开始介...