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进行分类(待办项和已完 ...
随机推荐
- Release时error c1083 无法打开包括文件
Release时error c1083 无法打开包括文件, 但Debug时没事. 项目里面包含了其实项目的头文件, 头文件目录就放在项目下面, 这个头文件里面调用其它头文件, 采用的是<xx/y ...
- ActionScript 3.0 for the Lunder Algorithm
package com.feiruo.Calendar.LunderCalendar { /* *@ClassName: package:com.feiruo.Calendar.LunderCalen ...
- sql 分组查询及格不及格人数
select score as 类别,count(*) as 人数 from (select case when fen>=60 then '及格' else '不及格' end as scor ...
- Android Menu 主菜单是使用
在Android里面每个Activity都绑定了一个Menu(菜单)有些时候我们需要使用到菜单.用法很简单,我们只需要重写onCreateOptionsMenu和onOptionsItemSelect ...
- [转载]: delphi中XLSReadWrite控件的使用(1)---简介
XLSReadWrite控件简介: 一个你需要的,能在Delphi和.NET下访问Excel文件的完美解决方案. 一个经典的读写Excel的控件,对于使用Excel 开发很有帮助 官方网站: http ...
- thinkphp实现单图片上传
$config=array( 'maxSize' => 3145728, 'savePath' => './Public/Uploads/', 'rootPath' => './', ...
- WampServer服务中MySQL无法正常启动解决方案
打开wampserver->mysql->my.ini,添加或修改innodb_force_recovery = 1 然后重启所有服务就大功告成了!
- zookeeper节点失效重连机制
http://www.blogjava.net/xylz/archive/2011/12/05/365578.html http://blog.csdn.net/tswisdom/article/de ...
- Java串口通信详解
http://blog.csdn.net/kabini/article/details/1601324 ———————————————————————————————————————————————— ...
- -Dmaven.multiModuleProjectDirectory system propery is not set问题解决
-Dmaven.multiModuleProjectDirectory system propery is not set问题解决 eclipse中使用maven插件的时候,运行run as mave ...