日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

html任务清单源码,JavaScript jQuery 任务清单 ToDoList

發(fā)布時間:2025/4/5 javascript 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html任务清单源码,JavaScript jQuery 任务清单 ToDoList 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

代碼實現(xiàn):

ToDoList.html(復(fù)制并保存為html文件,打開即可見效果):

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

<title>ToDoList—最簡單的待辦事項列表</title>

<link rel="stylesheet" href="https://blog-static.cnblogs.com/files/jacklzx/ToDoList.css">

<script src="https://blog-static.cnblogs.com/files/jacklzx/jquery.min.js"></script>

<script src="https://blog-static.cnblogs.com/files/jacklzx/ToDoList.js"></script>

</head>

<body>

<header>

<section>

<label for="title">ToDoList</label>

<input type="text" id="title" name="title" placeholder="請輸入ToDo" required="required" autocomplete="off" />

</section>

</header>

<section>

<h2>正在進(jìn)行 <span id="todocount"></span></h2>

<ol id="todolist" class="demo-box">

</ol>

<hr>

<h2>已經(jīng)完成 <span id="donecount"></span></h2>

<ul id="donelist">

</ul>

</section>

</body>

</html>

ToDoList.css:

body {

margin: 0;

padding: 0;

font-size: 16px;

background: #CDCDCD;

}

header {

height: 50px;

background: #333;

background: rgba(47, 47, 47, 0.98);

}

section {

margin: 0 auto;

}

label {

float: left;

width: 100px;

line-height: 50px;

color: #DDD;

font-size: 24px;

cursor: pointer;

font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

}

header input {

float: right;

width: 60%;

height: 24px;

margin-top: 12px;

text-indent: 10px;

border-radius: 5px;

box-shadow: 0 1px 0 rgba(255, 255, 255, 0.24), 0 1px 6px rgba(0, 0, 0, 0.45) inset;

border: none

}

input:focus {

outline-width: 0

}

h2 {

position: relative;

}

span {

position: absolute;

top: 2px;

right: 5px;

display: inline-block;

padding: 0 5px;

height: 20px;

border-radius: 20px;

background: #E6E6FA;

line-height: 22px;

text-align: center;

color: #666;

font-size: 14px;

}

ol,

ul {

padding: 0;

list-style: none;

}

li input {

position: absolute;

top: 2px;

left: 10px;

width: 22px;

height: 22px;

cursor: pointer;

}

p {

margin: 0;

}

li p input {

top: 3px;

left: 40px;

width: 70%;

height: 20px;

line-height: 14px;

text-indent: 5px;

font-size: 14px;

}

li {

height: 32px;

line-height: 32px;

background: #fff;

position: relative;

margin-bottom: 10px;

padding: 0 45px;

border-radius: 3px;

border-left: 5px solid #629A9C;

box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07);

}

ol li {

cursor: move;

}

ul li {

border-left: 5px solid #999;

opacity: 0.5;

}

li a {

position: absolute;

top: 2px;

right: 5px;

display: inline-block;

width: 14px;

height: 12px;

border-radius: 14px;

border: 6px double #FFF;

background: #CCC;

line-height: 14px;

text-align: center;

color: #FFF;

font-weight: bold;

font-size: 14px;

cursor: pointer;

}

footer {

color: #666;

font-size: 14px;

text-align: center;

}

footer a {

color: #666;

text-decoration: none;

color: #999;

}

@media screen and (max-device-width: 620px) {

section {

width: 96%;

padding: 0 2%;

}

}

@media screen and (min-width: 620px) {

section {

width: 600px;

padding: 0 10px;

}

}

ToDoList.js

$(function() {

// 頁面每次加載,就自動渲染一次數(shù)據(jù)

load();

$("#title").on("keydown", function(event) {

// 判斷用戶按下了回車鍵(13)

if (event.keyCode == 13) {

if ($(this).val() == "") {

alert("請輸入待辦事項!");

} else {

// 先讀取本地存取原來的數(shù)據(jù)

var local = getData();

// 把最新的數(shù)據(jù)追加給local

local.push({ title: $(this).val(), done: false });

// 把local存到本地存儲

saveData(local);

load();

// 加載完畢后刪除input中的文本

$(this).val("");

}

}

});

//刪除操作

$("ol,ul").on("click", "a", function() {

// 獲取本地存儲

var data = getData();

// 修改數(shù)據(jù)

var index = $(this).attr("id");

// console.log(index);

// 元素.splice(從第幾個位置開始刪除,刪除幾個)

data.splice(index, 1);

// 保存到本地存儲

saveData(data);

// 重新渲染頁面

load();

});

// 正在進(jìn)行、已經(jīng)完成操作

$("ol,ul").on("click", "input", function() {

var data = getData();

var index = $(this).siblings("a").attr("id");

// console.log(index);

data[index].done = $(this).prop("checked");

saveData(data);

load();

});

// 讀取本地存儲的數(shù)據(jù)

function getData() {

var data = localStorage.getItem("todolist");

if (data !== null) {

// 本地存儲的數(shù)據(jù)格式是字符串,需要轉(zhuǎn)化成對象

return JSON.parse(data);

} else {

return [];

}

}

// 保存本地存儲數(shù)據(jù)

function saveData(data) {

// 存儲前要轉(zhuǎn)化為字符串

localStorage.setItem("todolist", JSON.stringify(data));

}

// 渲染加載數(shù)據(jù)

function load() {

var data = getData();

// console.log(data);

// 遍歷之前先清空ol和ul里的內(nèi)容

$("ol,ul").empty();

var todoCount = 0; // 正在進(jìn)行的個數(shù)

var doneCount = 0; // 已完成的個數(shù)

// 遍歷數(shù)據(jù)data

$.each(data, function(i, n) {

// console.log(n);

// 追加數(shù)據(jù),并創(chuàng)建自定義id索引號

if (n.done) {

$("ul").prepend("<li><input type='checkbox' checked='checked'> <p>" + n.title + "</p> <a href='javascript:;' id=" + i + "></a></li>");

doneCount++;

} else {

$("ol").prepend("<li><input type='checkbox'> <p>" + n.title + "</p> <a href='javascript:;' id=" + i + "></a></li>");

todoCount++;

}

});

// 修改顯示的個數(shù)

$("#todocount").text(todoCount);

$("#donecount").text(doneCount);

}

});

總結(jié)

以上是生活随笔為你收集整理的html任务清单源码,JavaScript jQuery 任务清单 ToDoList的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。