todolist待办事项的编写

功能实现:

  • 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>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值