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;
}
时间: 2024-10-15 08:34:11

jquery实现TODOList的相关文章

jQuery模仿ToDoList实现简单的待办事项列表

功能:在文本框中输入待办事项按下回车后,事项会出现在未完成列表中:点击未完成事项前边的复选框后,该事项会出现在已完成列表中,反之亦然:点击删除按钮会删除该事项.待办事项的数据是保存到本地存储的(localStorage),就算关闭页面再打开,数据还是存在的(前提是要用相同浏览器). ToDoList链接:ToDoList—最简单的待办事项列表 先把css样式以及js文件引入进来,jQuery文件要写在你自己的js文件上边 <link rel="stylesheet" href=&

通过TodoList案例对比Vue.js的MVVM设计模式与JQuery的MVP设计模式

Vue MVVM设计模式: 在使用vue进行编程时,不会再涉及到DOM的操作,取而代之的是修改数据层,当把数据进行变更的时候,vue之中它的底层会自动的根据数据的不同帮助我们去重新渲染页面. 编码时不需要关注VM层是如何实现的,它是vue内置的,只需要关注M层(模型层)和V层(视图层). 使用MVVM设计模式进行编码时,编码的重点一部分在于视图层,一部分在于模型层. data:指M层. <div>模板标签:指V层. vue:自身实现VM层.vue会监听到数据变了会帮你改变视图层,vue也能监听

vue入门 vue与react和Angular的关系和区别

一.为什么学习vue.js vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/v2/api/ 二.vue.js是什么 Vue是一个"MVVM框架(库)",和angular类似,相比angular小巧,比较容易上手 Vue是一个构建用户界面点的渐进式框架,与其他重量级框架不同的是,vue采用自底向上增量开发的设计 vue的核心库"只关注视图层",并

从零开始学习Vue.js,学习笔记

一.为什么学习vue.js methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/v2/api/ 二.vue.js是什么 Vue是一个"MVVM框架(库)",和angular类似,相比angular小巧,比较容易上手 Vue是一个构建用户界面点的渐进式框架,与其他重量级框架不同的是,vue采用自底向上

Vue.js 学习记录

一.Vue起步 Vue:构建用户界面的渐进式框架. 1.helloworld <div id="app">{{content}}</div> 原生方法: <script> var dom = document.getElementById('app'); dom.innerHTML = 'helloworld'; </script> Vue 方法: <script> //创建Vue实例 var app = new Vue({

jQuery Mobile 手动显示ajax加载器

在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更好一些. 先看两个方法,显示和关闭,方法来自于参考:http://blog.csdn.net/zht666/article/details/8563025 <script> //显示加载器 function showLoader() { //显示加载器.for jQuery Mobile 1.2.

jquery mobile中显示加载中提示框和关闭提示框

在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更好一些. 先看两个方法,显示和关闭,方法来自于参考:http://blog.csdn.net/zht666/article/details/8563025 <script> //显示加载器 function showLoader() { //显示加载器.for jQuery Mobile 1.2.

[js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)

该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息 [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法 [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义 [js高手之路]Node.js模板引擎教程-jade速学与实战3-mixin

TodoList开发笔记 – PartⅠ

做了一年多的桌面软件,最近开始转向Web方面的开发,既然比较熟悉Net那么首当其冲就是学习ASP.Net,以及HTML.CSS.Javascript. 为了检验这个把星期来的学习成果,着手做了一个TodoList的小应用,记录于此. 一.这个应用解决什么 只是作为Any.Do的仿制品而已...练练手 二.这个应用如何搭建而成 服务器主框架: ASP.Net MVC 数据访问: Linq To Sql 客户端开发: HTML.CSS.Javascript 用到的组件: JQuery.Bootstr