todolist待办事项的编写

ToDoList待办事项列表 Vue3 Spring boot ToDoList待办事项列表 主要功能: 对待办事项进行增删改查操作; 显示待办事项的进行中或已完成的状态并显示进行中的待办事项距离结束时间的时间; 待办事项任务到达预定时间后会自动发送windows通知; 切换中英文的功能 使用到的相关技术: 前端: Element UI、TypeScript、Sass、Axios、Vue3、Vue-Router、Vue-i18n 后端: Java、Spring boot2、MySQL、Mybatis、Maven 使用的开发环境: Windows、IDEA、VS-Cod 阅读详情

功能实现:

  • 1.在顶部输入内容,添加到正在进行列表;
  • 2.点击前面复选框正在进行的项目添加到已经完成里面,同时数量增加减少
  • 3.点击右边删除按钮可以删除项目;
  • 4.关闭窗口,下次进入页面载入之前的项目列表.

用到的知识:

  • 1.html+css样式
  • 2.jQuery及cookie

效果图:

在这里插入图片描述

代码示例:

//需引入jQuery插件和jQuery的cookie插件!!
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    li{
      list-style: none;
    }
    section{
      margin: 100px auto;
      width: 400px;
      min-height: 50px;
      border: 1px solid;
    }
    dt{
      background-color: #313131;
      /* width: 100%; */
      height: 35px;
      line-height: 35px;
      color: #fff;
    }
    dt h3{
      float: left;
      font-weight: normal;
      margin-left: 5px;
    }
    dt p{
      float: right;
      margin-right: 5px;
    }
    dt p input{
      width: 200px;
      height: 20px;
      border-radius: 5px;
      border: 0;
      outline: 0;
    }
    dd .title{
      background-color: #cdcdcd;
      height: 35px;
      line-height: 35px;
      cursor: pointer;
      padding-left: 10px;
    }
    dd .title h4{
      float: left;
    }
    dd .title span{
      float: right;
      margin-right: 10px;
      margin-top: 5px;
      display: block;
      background-color: #e6e6fb;
      width: 20px;
      height: 20px;
      line-height: 20px;
      text-align: center;
      border-radius: 50%;
    }
    ul{
      background-color: #cdcdcd;
    }
    .content li{
      height: 25px;
      width: 400px;
      padding: 5px 0;
    }
    .content-main{
      /* width: 360px; */
      background-color: #fff;
      margin: 0 10px 0;
      height: 100%;
      line-height: 25px;
      border-radius: 5px;
    }
    .left{
      float: left;
    }
    .content-main .left i{
      float: left;
      display: inline-block;
      width: 5px;
      height: 25px;
      border-top-left-radius: 5px;
      border-bottom-left-radius: 5px;
      background-color: #609a9d;
    }
    .content-main .left input{
      float: left;
      margin: 6px 10px 0;
    }
    .content-main .left span{
      float: left;
      font-size: 12px;
    }
    .right{
      float: right;
    }
    .right em{
      display: block;
      margin-top: 5px;
      margin-right: 5px;
      width: 15px;
      height: 15px;
      border-radius: 50%;
      background-color: #cccccc;
      text-align: center;
      line-height: 15px;
      padding-right:3px ;
      color: #fff;
      font-weight: bold;
      cursor: pointer;
    }
    #complete-content .content-main{
      background-color: #e6e6e6;
    }
    
  </style>
</head>
<body>
  <section>
    <dl>
      <dt>
        <h3>ToDoList</h3>
        <p><input type="text" placeholder="添加ToDo" id="addList"></p>
      </dt>
      <dd>
        <div class="title"><h4>正在进行</h4><span id="going-num">0</span></div>
        <div class="content" id="going-content">
          <ul>
            <!-- <li class="content-list"><div class="content-main">
              <div class="left"><i></i><input type="checkbox" class="going-content-input"><span>今天我要学习jQuery</span>
              </div>
              <div class="right"><em id="del">-</em></div>
            </div></li> -->
          </ul>
        </div>
      </dd>
      <dd>
        <div class="title"><h4>已经完成</h4><span id="complete-num">0</span></div>
        <div class="content" id="complete-content">
          <ul></ul>
        </div>
      </dd>
    </dl>
  </section>
</body>
</html>
<script src="jQuery.js"></script>
<script src="jquery.cookie-1.4.1.min.js"></script>
<script>
  $(function(){
    let going_num = 0;
    let complete_num = 0;
    //判断有无cookie
    if($.cookie("going")){
      let arrGoing = $.cookie("going").split(";");
      going_num = arrGoing.length;
      $("#going-num").text(going_num);
      $.each(arrGoing,function(i,val){
        $("#going-content ul").append(`<li class="content-list"><div class="content-main">
          <div class="left"><i></i><input type="checkbox" class="going-content-input"><span>${val}</span>
              </div>
            <div class="right"><em id="del">-</em></div>
          </div></li>`);
      });
    }
    if($.cookie("complete")){
      let arrComplete = $.cookie("complete").split(";");
      complete_num = arrComplete.length;
      $("#complete-num").text(complete_num);
      $.each(arrComplete,function(i,val){
        $("#complete-content ul").append(`<li class="content-list"><div class="content-main">
          <div class="left"><i></i><input type="checkbox" class="going-content-input" checked="checked"><span>${val}</span>
              </div>
            <div class="right"><em id="del">-</em></div>
          </div></li>`);
      });
    }
		// 载入cookie后删除cookie
		$.removeCookie("going");
		$.removeCookie("complete");
    //点击添加
    $("#addList").keydown(function (e) {
      if (e.keyCode == 13 && $(this).val() != "") {
        $("#going-content ul").append(`<li class="content-list"><div class="content-main">
          <div class="left"><i></i><input type="checkbox" class="going-content-input"><span>${$("#addList").val()}</span>
              </div>
            <div class="right"><em id="del">-</em></div>
          </div></li>`);
        going_num++;
        $("#going-num").text(going_num);
        $(this).val("");
        
      }
			dodo(); 
    });
    dodo();
    function dodo(){
			//点击正在进行复选框
        $("#going-content .going-content-input").off().click(function () {
        let oLi = $(this).parent().parent().parent().html();
        console.log(oLi);
        $("#complete-content ul").append(`
      <li class="content-list">${oLi}</li>
      `);
        $("#complete-content .going-content-input").attr("checked", true);
        complete_num++;
        $("#complete-num").text(complete_num);
        going_num--;
        $("#going-num").text(going_num);
        $(this).parents(".content-list").remove();
				
				del();
      });
			//点击正在进行删除框
      $("#going-content #del").off().click(function () {
        going_num--;
        $("#going-num").text(going_num);
        $(this).parents(".content-list").remove();
      });
			
			del();
      
    }
		//点击删除
		function del(){
			$("#complete-content #del").off().click(function () {
			  complete_num--;
			  $("#complete-num").text(complete_num);
			  $(this).parents(".content-list").remove();
			});
		}
		
		window.onbeforeunload = function(){
			$("#going-content ul li").each(function(i,ele){
				if($.cookie("going")){
					$.cookie("going",$.cookie("going") + ";" + $(ele).find(".content-main").find(".left").find("span").text(),{expires:7});
				}else{
					$.cookie("going",$(ele).find(".content-main").find(".left").find("span").text(),{expires:7});
				}
			});
			$("#complete-content ul li").each(function(i,ele){
				if($.cookie("complete")){
					$.cookie("complete",$.cookie("complete") + ";" + $(ele).find(".content-main").find(".left").find("span").text(),{expires:7});
				}else{
					$.cookie("complete",$(ele).find(".content-main").find(".left").find("span").text(),{expires:7});
				}
			});
		}
  });
</script>

脑机接口最新发展动态报告 (2024-2025) 脑机接口动态 阅读详情

相关推荐

Multisim仿真入门:单相半波可控整流电路从搭建到波形分析(附避坑指南)

本文为电力电子技术初学者提供了一份详细的Multisim仿真指南,手把手教你从零搭建单相半波可控整流电路。通过对比纯电阻、阻感负载及加入续流二极管后的波形变化,直观理解晶闸管触发、电感续流等核心原理,并附有实用的参数设置与常见问题避坑指南,帮助你将抽象理论转化为可视化的工程实践。

weixin_29208077的博客 343

base.css —— 项目初始化

/* 把我们所有标签的内外边距清零 */ * { margin: 0; padding: 0; /* css3盒子模型 */ box-sizing: border-box; } button, input { /* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */ font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-se.

xumengxia的博客 204

卡诺图化简法

目录 1.学前需要了解知识点 2.卡诺图(karnaugh map) 3.逻辑函数的卡诺图化简法 4.总结 1.学前需要了解知识点 最小项的定义 最小项的表示方法 最小项的相邻性 最小项的定义:一个函数的某个乘积项包含了函数的全部变量,其中每个变量都以原变量或反变量的形式出现,且仅出现一次,则这个乘积项称为该函数的一个标准积项,通常称为最小项。 最小项的表示方法:通常用来表...

hahasusu的专栏 17万+

使用 JavaScript 制作 To-Do List

本文记录了使用 HTML、CSS 和 JavaScript 制作一个简单的 To-Do List 网页的全过程,包含功能描述、代码实现以及优化方向。**🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏。

雨溪的博客 1363

基于YOLO26深度学习框架的人脸识别门禁系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的人脸识别门禁系统实现方法。系统采用YOLO26目标检测算法,通过CSPDarknet53主干网络、特征金字塔结构和注意力机制实现高效人脸检测。研究内容包括数据预处理、模型训练优化和身份验证等关键技术,使用迁移学习策略和CIoU损失函数提升检测精度。该系统可应用于智能安防场景,具有实时性强、识别准确的特点,为门禁管理提供了智能化解决方案。

一键难忘的博客 766

各向同性、VTI、TTI以及双相介质波场数值模拟

各位读者,大家好!在今天的文章中,我将介绍关于波场数值模拟中的各向同性、VTI(垂直横向等参数介质)、TTI(倾斜横向等参数介质)以及双相介质的基本概念。同时,我也会提供一些基础的Fortran代码片段,供大家了解和学习。

qq_38334677的博客 1707

toDoList的做法

以下部分实现了将数据存储到本地的操作 读取和存储本地数据的方法 function getDate() { var data = localStorage.getItem("todolist"); if (data !== null) { // 本地存储里面的数据是字符串格式的 但是我们需要的是对象格式的 return JSON.parse(data); } else { retur...

weixin_51415327的博客 648

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

todolist实现

1.效果图 2.分析步骤 (1)搭建vue项目 vue create todolist (2) 接着写静态布局 (3)添加指令 双向数据绑定 全选 删除 全删 (4)排序序号 (5)实现效果 3.代码块部分 1.内容 2.存储数据 3.添加 4.删除 5.全删 6.计算属性,数据 7.过滤数据 (如果一个数据是item,超过一个数据切换成items) 4.总结 通过键盘事件添加,当然也可以通过按钮添加,把输入框的值value 渲

zhao_li_ming的博客 898

【AI应用实战-claude】在飞书上接入claudecode进行远程使用(十三)

本文介绍了三种将ClaudeCode接入飞书的方案,包括官方飞书CLI工具(推荐)、cc-connect中转工具和MCP协议集成。官方飞书CLI适合自动化办公场景,通过简单配置即可实现消息发送和文档管理;cc-connect适用于远程调用Claude功能,通过飞书群聊触发响应;MCP协议则适合开发者构建复杂工作流。文章提供了详细的操作步骤,并针对不同使用场景给出了选择建议。

1012

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 971

ToDoList

1、页面初始化样式如图 2. 顶部input框中输入内容,按下回车enter键后,“正在进行” 列表中加入该条内容。 3. 顶部input框中输入内容,按下回车enter键后,“正在进行” 列表中继续加入内容。右上角的数字跟随列表数目变化而变化。 4. 点击列表左侧checkbox,可以将“正在进行”的列表项变更为“已经完成”的列表项。每个列表中的数字要跟随变动。 5. 点击列表项右侧的删除按钮可以删除列表项。 6.将当前列表项内容保存在cookie中,做持久存储,下一...

CSErtuh的博客 532

pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库

里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。

Cachel Wood的博客 349

VueCLI创建单文件组件编写TODOList

TODOList是学习Vue基础的经典案例,下面来看看如何使用单文件组件编写TODOList吧。

鸟人的博客 218

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ToDoList 项目常见问题解决方案

ToDoList 项目常见问题解决方案 基础介绍 ToDoList 是一个用 Swift 编写的简单待办事项列表应用,支持 iPhone、iPad 以及 Apple Watch。该应用具有持久任务列表、iCloud 同步、提醒通知等主要功能。它是开源的,使用 GPL-3.0 许可。 主要编程语言:Swift 新手常见问题及解决步骤 问题一:无法运行项目,提示缺少配置 问题描述: 新手在尝试运行项目...

gitblog_01142的博客 495

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

小程序TodoList实践

TodoList实践 看完官方的文档介绍后,就想找个简单的例子来验证实现一下,TodoList MVC就很好了,简单容易。 之前都用JQ、Backbone、vue简单撸过,大概功能如下: 添加todo 储存在应用缓存 列表展示 区分状态显示:全部、未完成、已完成 改变todo状态 删除todo 根据以上功能,小程序完成如下: GitHub: github.com/CH563/TodoL… 下...

weixin_34327761的博客 615

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

vue的demo,todolist计划清单

我相信大家已经大体上已经了解了vue和vue-cli的运行原理了。 这是todelist页面的html结构 <template> <div> <main id="todolist"> <h1> Todo List <span>想一些事,做一些事.</span...

weixin_45532305的博客 299

利用Vue制作todoList demo

这里写自定义目录标题demo介绍1. 数据结构的设计2. 在template中写入html部分,style标签内写入样式3. 给页面元素绑定数据和事件3.1 input输入框 主要参考这篇博客 demo介绍 此demo页面分为三部分,输入框、待办区域和已办区域。 输入框可以添加待办事件,待办区域鼠标悬浮右侧滑出操作按钮可以标记完成以及删除,已办区域鼠标悬浮右侧滑出操作按钮可以标记未完成和删除。同时要满足刷新页面数据不消失。 完成效果如下 1. 数据结构的设计 todo存放当前代办名称,作为一个临时获取

weixin_42393901的博客 582

【前端】js 小项目,todolist 网页

一共3个文件,html,index.css,index.js。主要是 jQuery,css 部分没难点。

qq_49150070的博客 441

基于react-redux开发一个待办事项的demo–todoList的笔记

基于react-redux开发一个待办事项的demo–todoList的笔记

jizai94的博客 1564

使用Jquery实现todolist小项目

前言:使用jq做的一个简单的todolist.在引入js文件时,千万别忘记把Jquery.js也引进去. 实现todolist小项目效果html文件js文件css文件 效果 html文件 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" con

咖啡壶的博客 1260

Vue3+vite+JS写一个todolist 的demo

我们首先定义了应用程序的模板。模板中包含一个输入框、一个待办事项列表和一个显示剩余任务数量的段落。,以便在用户按下回车键或更改复选框状态时执行相应的操作。是一个数组,它包含应用程序中所有的待办事项。在Vue中,我们可以使用指令将模板与数据绑定起来。在这个例子中,我们使用了。在Vue中,组件可以有自己的状态和方法。在这个例子中,我们定义了一个。最后,在项目根目录下打开命令行终端,运行命令启动Vite服务。变量双向绑定,以便在用户输入时动态更新输入框的值。是一个字符串,它表示当前正在输入的待办事项。

Liangwan0315的博客 437

基于浏览器localStorage作为数据库完成todolsit项目

Todolist是一个基于B/S模式开发的待办事项软件,主要功能是离线记录用户的待办事项和已经完成的事情,基于html+css+js实现,涉及到的知识主要是事件监听和数据缓冲技术.

辅导大学生代码设计15年 669

原生js todolist 代码优化版

【代码】原生js todolist 代码优化版。

qq_48555504的博客 245

vue实现一个记事本的案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D.

yang68668的博客 669

自己写的ToDoList—最简单的待办事项列表的代码和思路详解没有更详细的了

ToDoList—最简单的待办事项列表 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <titl...

weixin_46515050的博客 3763
上一篇: 电商项目-图文Mysql一对多查询,多对多查询
下一篇: async、await、generator
maya1024
博客等级 码龄14年 56粉丝 60原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值