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进行分类(待办项和已完 ...
随机推荐
- (整理)SQL server 2012 中文乱码与5030错误
安装2012后,一直没注意到中文的问题.直到有一天,突然发现字段内容竟然是“??”,然后一通查,原来是排序规则需要改变: 选择数据库->右键属性->选项,将排序规则改成“Chinese_P ...
- Linux zip/unzip命令
From: http://www.ixdba.net/a/os/linux/2010/0725/359.html From: http://www.cnblogs.com/chinareny2k/ar ...
- tomacat启动慢
tomcat目录下有多个工程,tomcat每次启动的时候都会去加载,删除不需要的工程,
- 【转】git push 出现401 错误
错误信息:error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.n ...
- 第八十七天请假 PHP smarty模板配置以及简单的调用方式
smarty模板的配置文件 <?php define("ROOT",str_replace("\\","/",dirname(__FI ...
- Spring3 url匹配规则
Spring3 url匹配规则 Wildcard Description ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 宝贝网址:
- android APK应用安装过程以及默认安装路径[转]
一:安装过程 APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android模拟器或Android手机中执行即可安装. Android应用安装有如下四种方式 1. ...
- (十一) 一起学 Unix 环境高级编程 (APUE) 之 高级 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- gdal编译C#开发版本
gdal的编译比较麻烦,情况有很多种,今天我编译的gdal遇到的问题就和以前的有点不一样,仅供参考借鉴. 1.下载gdal源码 gdal源码下载地址:https://trac.osgeo.org/gd ...
- Selenium2+python自动化26-js处理内嵌div滚动条
前言 前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦. 一.内嵌滚动条 1.下面这张图就是内嵌div带有滚动条的样子,记住它的长相.