jquery实现TODOList
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ToDoList</title>
<link rel="stylesheet" type="text/css" href="ToDoList1.css">
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
<div class="ToDoList_page">
<div class="ToDoList_container">
<div id="ToDoList_header">ToDoList:
<input type="text" id="ToDoList_add" value="what do you need">
</div>
<div class="ToDoList_content">待处理事务</div>
<input type='checkbox' id='all_checkbox' >select all
<div id="ToDoList_events">
</div>
<p class="event_count"></p>
</div>
</div> </div>
<script type="text/javascript" src="ToDoList1.js"></script>
</body>
</html>
js
(function(){
      'use strict';
           var add_list = $("#ToDoList_add");
           var event_context =add_list.val();
           var ToDoList_events = $("#ToDoList_events");
           var allCheckbox=$("#all_checkbox");
           var deleteHtml ='<a href="javascript:void(0)" class="event_delete">×</a>';
           var i=0;
            // 增加事件列表
                 $("#ToDoList_add").bind("keypress",function(event){
                      if(event.keyCode===13){
                        i++;
                        var events_list = '<div class="events_list" id=list_'+i+'></div>';
                        var checkboxHtml='<input type="checkbox" class="checkboxList" id=event_'+i+'></input>';
                        ToDoList_events.append(events_list);
                        $("#list_"+i).append(checkboxHtml).append(event_context).append(deleteHtml);
                        // console.log($(".events_list").get(0));
                     }
                 });
            // 全选和全不选
                $("#all_checkbox").bind("click",function(){
                       if(allCheckbox.prop('checked')){
                           $(".events_list input").prop("checked",true);
                           $(".events_list").addClass("addline");
                       }else{
                           $(".events_list input").prop("checked",false);
                           $(".events_list").removeClass("addline");
                        }
                        events_count();
                  });
            // 给新增的元素动态绑定事件----事件代理
               $("#ToDoList_events").bind("click",function(e){
                    var eventId=e.target.id;
                    var isChecked=$("#"+eventId).prop("checked");
                    var eventsAllLength=$(".events_list").size();
                    var events_selected=$(".events_list input:checked").size();
                    if(eventsAllLength ===events_selected){
                      $("#all_checkbox").prop("checked",true);
                    }else{
                      $("#all_checkbox").prop("checked",false);
                    }
                    if(isChecked){
                      $("#"+eventId).prop("checked",true);
                      $("#"+eventId).parent(".events_list").addClass("addline");
                    }else{
                      $("#"+eventId).prop("checked",false);
                      $("#"+eventId).parent(".events_list").removeClass("addline");
                    }
                    events_count();
               });
              // 删除某个事件列表
              $("#ToDoList_events").on("click","a",function(){
                        $(this).parent().remove();
                        events_count();
                    });
               function events_count(){
                   var event_length = $("#ToDoList_events input:checked").size();
                   $(".event_count").html('total:' + event_length + 'selected');
               }
})();
css
body{
    margin: 0px;
    padding: 0px;
    font-size:14px;
}
div .ToDoList_page{
    text-align: center;
}
div .ToDoList_container{
    width: 500px;
    height: 500px;
    border: 1px solid black;
    padding-top: 5px;
    margin-right: auto;
    margin-left: auto;
}
 .events_list .event_delete{
    display: none;
}
.events_list:hover{
    background-color: #cad5eb;
}
.events_list:hover .event_delete{
    display: inline-block;
    text-decoration: none;
    cursor: pointer;
    padding: .3em 1em;
}
.addline{
    text-decoration:line-through;
    color:red;
}
jquery实现TODOList的更多相关文章
- jQuery模仿ToDoList实现简单的待办事项列表
		功能:在文本框中输入待办事项按下回车后,事项会出现在未完成列表中:点击未完成事项前边的复选框后,该事项会出现在已完成列表中,反之亦然:点击删除按钮会删除该事项:双击事项可以修改事项的内容.待办事项的数 ... 
- 【jQuery】todolist
		1 2 3 用npm命令下载依赖,优点:不用去网上找链接,代码都一样 4.jQuery自动下载进node_modules文件下 npm install jquery --save 这句命令的意思是保 ... 
- 通过TodoList案例对比Vue.js的MVVM设计模式与JQuery的MVP设计模式
		Vue MVVM设计模式: 在使用vue进行编程时,不会再涉及到DOM的操作,取而代之的是修改数据层,当把数据进行变更的时候,vue之中它的底层会自动的根据数据的不同帮助我们去重新渲染页面. 编码时不 ... 
- Node.js + React + MongoDB 实现 TodoList 单页应用
		之前用 Ant Design 开发了一个项目,因此对 React 的特性有了一定的了解,React 使用封装组件的思想,组件各自维护自己的状态和 UI, 组件之间通过 props 传递数据和方法.当状 ... 
- vue入门 vue与react和Angular的关系和区别
		一.为什么学习vue.js vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/ ... 
- 从零开始学习Vue.js,学习笔记
		一.为什么学习vue.js methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn ... 
- MVVM 和 VUE
		一,使用jquery和使用vue的区别 二,对MVVM的理解 三,vue中如何实现响应式 四,vue如何解析模版 五,vue整个实现流程 一,使用jquery和使用vue的区别 jquery实现t ... 
- Javascript高级面试
		原型 异步 一.什么是单线程,和异步有什么关系 单线程:只有一个线程,同一时间只能做一件事原因:避免DOM渲染的冲突解决方案:异步 为什么js只有一个线程:避免DOM渲染冲突 浏览器需要渲染DOM J ... 
- Jquery开发&BootStrap 实现“todolist项目”
		作业题目:实现“todolist项目” 作业需求: 基础需求:85%参考链接http://www.todolist.cn/1. 将用户输入添加至待办项2. 可以对todolist进行分类(待办项和已完 ... 
随机推荐
- 使用 Fiddler2 进行接口测试的方法
			一 前言 部分业务需要进行接口测试,而接口测试的覆盖度稍有不全,可能就会造成包括启动崩溃在内的严重问题.目前本人所在的团队中业务大量使用了本地代码中直接 mock 数据进行测试,此种方法虽然可以测试到 ... 
- flex polygon 序列化为txt 文本
			当我们要把一个地块导出为txt的时候,应该怎么写,这是比较有用的这样可以帮助我们存档之类的,这里是基于某个地方的独立坐标系,是基于自己发布地图,如果是用百度地图或者其他网上的地图可能不适用. pack ... 
- PHP基础课程学习总结
			时间过得很快,不知不觉中过去了一个月,PHP基础课程已经学完了.休息这几天中,睡觉起来,整理下笔记,几天的假期又过去了,明天正式开始PHP的专业课程,新的征途又要开始了.开发整站时发现,过去整站做得太 ... 
- java新项目的eclipse统一配置记录
			1.new java file的模版 /** * @Title:${file_name} * @Copyright: Copyright (c) 2016 * @Description: * < ... 
- EMR,电子病历(Electronic Medical Record)
			电子病历 电子病历(EMR,Electronic Medical Record),也叫计算机化的病案系统或称基于计算机的病人记录(CPR,Computer-Based Patient Record). ... 
- Deep Learning(深度学习)学习笔记整理(二)
			本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ... 
- random、面向对象编程
			一.random模块:随机数 import random print random.random() print random.randint(,) print random.randrange(,) ... 
- 8.11 CSS知识点4
			边框样式 1.边框宽度 border-width:medium | thin | thick | length border-top-width 设置上边框宽度 border-bottom-widt ... 
- Dobbo的继任者?试用微博RPC框架Motan
			从14年开始就陆续看到新浪微博RPC框架Motan的介绍,时隔两年后,微博团队终于宣布开源轻量级RPC框架Motan,项目地址: https://github.com/weibocom/motan/ ... 
- 基于CCS3.3平台搭建DSP/BIOS系统
			本人由于换工作的原因,由ccs3.1平台下转化为ccs3.3平台.先说说本人感觉的区别,ccs3.1下的CSL库集成到DSP/BIOS内,而3.3的CSL库在DSP/BIOS下就没有体现. 1.二话不 ... 
