【jQuery】todolist
1

2

3 用npm命令下载依赖,优点:不用去网上找链接,代码都一样

4.jQuery自动下载进node_modules文件下
npm install jquery --save 这句命令的意思是保存,使package.json文件与node_modules同步(save以后dependencies下才有jquery,有利于项目部署,此时若删掉node_modules文件,保留package.json,直接npm install会自动下载相关依赖)

5.把代码写成这种形式,避免直接写到window中(可能将window的属性覆盖)
;(function(){
'use strict';
})();
6.传统reset方法http://meyerweb.com/eric/tools/css/reset/index.html
现采用normalize方法:https://necolas.github.io/normalize.css/(或http://www.bootcdn.cn/normalize/)
其命令为:npm install normalize.css
在html中引用normalize.css时应该放在第一位

7.原理框图如下

8.storejs插件
参考:https://www.awesomes.cn/repo/marcuswestin/store-js
适用于所有浏览器的本地存储,不使用 cookies 或者 flash。会根据浏览器的不同选择 localStorage, globalStorage, 和 userData 作为存储引擎。
store.js 公开了一个简单的接口来实现跨浏览器的本地存储。
// Store 'marcus' at 'username'
store.set('username', 'marcus') // Get 'username'
store.get('username') // Remove 'username'
store.remove('username') // Clear all keys
store.clear() // 存储一个对象字面量 - store.js 内部使用了 JSON.stringify
store.set('user', { name: 'marcus', likes: 'javascript' }) // 获取存储的对象 - store.js 内部使用了 JSON.parse
var user = store.get('user')
alert(user.name + ' likes ' + user.likes) // Get all stored values
store.getAll().user.name == 'marcus' // Loop over all stored values
store.forEach(function(key, val) {
console.log(key, '==', val)
})
在本项目中
function refresh_task_list() {
store.set('task_list',task_list);
render_task_list();
}
function get(index) {
return store.get('task_list')[index];
}
9.datatimepicker插件
参考:http://www.jq22.com/jquery-info332
该插件可以精确到分钟
function render_task_detail(index) {
if(index===undefined||!task_list[index]) return;
var item =task_list[index];
var tpl=
'<form>'+
'<div class="content">'+
(item.content||'')+
'</div>'+
'<div class="input-item"><input style="display: none" type="text" name="content" value="'+item.content+'"></div>'+
'<div>'+
'<div class="desc input-item">'+
'<textarea name="desc">'+(item.desc||'')+'</textarea>'+
'</div>'+
'</div>'+
'<div class="remind input-item">'+
'<label>提醒时间</label>'+
'<input class="datetime" name="remind_date" type="text" value="'+(item.remind_date||'')+'">'+
'</div>'+
'<div input-item><button type="submit">更新</button></div>'+
'</form>';
/*清空task详情模板*/
$task_detail.html(null);
/*使用新模板*/
$task_detail.html(tpl);
$('.datetime').datetimepicker();
/*选中其中的form元素*/
$update_form=$task_detail.find('form');
$task_detail_content=$update_form.find('.content');
$task_detail_content_input=$update_form.find('[name=content]');
/*双击内容元素显示input,隐藏自己*/
$task_detail_content.on('dblclick',function () {
$task_detail_content_input.show();
$task_detail_content.hide();
})
$update_form.on('submit',function (e) {
e.preventDefault();
var data={};
/*获取表单中各个input的值*/
data.content=$(this).find('[name=content]').val();
data.desc=$(this).find('[name=desc]').val();
data.remind_date=$(this).find('[name=remind_date]').val();
update_task(index,data);
hide_task_detail();
})
}
项目中使用到了Deferred(延迟)对象,具体可以参考我的另一篇文章:http://www.cnblogs.com/yujihang/p/6875263.html
【jQuery】todolist的更多相关文章
- 【jQuery】使用JQ来编写面板的淡入淡出效果
本文与上一篇的<[jQuery]使用JQ来编写最主要的淡入淡出效果>(点击打开链接)为姊妹篇. 但上一篇仅仅是对文本的基本控制,本篇则是对面板元素进行控制. 尽管功能上很类似,可是所用到的 ...
- 【jQuery】复选框的全选、反选,推断哪些复选框被选中
本文与<[JavaScript]复选框的全选.反选.推断哪些复选框被选中>(点击打开链接)为姊妹篇,把里面内容再与jQuery框架中实现一次,相同做到例如以下的效果: 布局还是相同的布局, ...
- js【jquery】 - DOM操作
1.修改元素样式 js方式: var div2 = document.getElementById("") div2.style.width = '200px'; div2.cla ...
- 【jQuery】 实用 js
[jQuery] 实用 js 1. int 处理 parseInt(") // int 转换 isNaN(page) // 判断是否是int类型 2. string 处理 // C# str ...
- 【jQuery】 Ajax
[jQuery] Ajax $.ajax({ type: "Post", // 发包方式 cache: false, // 是否缓存 contentType: "appl ...
- 【jQuery】 常用函数
[jQuery] 常用函数 html() : 获取设置元素内的 html,包含标签 text() : 获取设置元素内的文本, 不包含标签 val() : 获取设置 value 值 attr() : 获 ...
- 【jQuery】 资料
[jQuery] 资料 1. 选择器 http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp 2. 事件 http://www.w3sch ...
- 【jQuery】 效果
[jQuery] 效果 资料 http://www.w3school.com.cn/jquery/jquery_ref_effects.asp 1. 显示隐藏 hide(); 隐藏 show(): 显 ...
- 【jQuery】 选择器
[jQuery] 选择器 资料: w3school http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp 1. 标签选择器 : $(& ...
随机推荐
- SpringMVC学习笔记:SpringMVC框架的执行流程
一.MVC设计模式 二.SpringMVC框架介绍 三.SpringMVC环境搭建 四.SpringMVC框架的请求处理流程及体系结构
- 中南月赛F ZZY and his little friends
Problem F: ZZY and his little friends Time Limit: 5 Sec Memory Limit: 256 MBSubmit: 137 Solved: 70 ...
- sql:PostgreSQL9.3 Using RETURNS TABLE vs. OUT parameters
http://www.postgresonline.com/journal/archives/201-Using-RETURNS-TABLE-vs.-OUT-parameters.html http: ...
- 水库抽样Reservoir Sampling(蓄水池问题)
知识复习 空间亚线性算法:由于大数据算法中涉及到的数据是海量的,数据难以放入内存计算,所以一种常用的处理办法是不对全部数据进行计算,而只向内存里放入小部分数据,仅使用内存中的小部分数据,就可以得到 ...
- Mybatis学习第四天——Mybatis与Spring整合
主要介绍mapper配置与mapper的扫描配置,使用dao层的配置这里不多说. 1.导包 1.1 Mybatis的jar包 1.2 Spring的jar包 1.3 Spring与Mybatis整合包 ...
- PowerDNS Authoritative Server 3.3 发布
PowerDNS Authoritative Server 3.3 发布,该版本改进了不同验证器的交互操作,修复了不少 bug. PowerDNS Authoritative Server (PDNS ...
- Qt获取控件位置,坐标总结
总结的结果是: QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标. 总结一:经过试验,QMouseEvent::globalPos() 和 QCursor::pos()效果 ...
- aspnetcore 认证相关类简要说明一
首先我想要简要说明是AuthenticationScheme类,每次看到Scheme这个单词我就感觉它是一个很高大上的单词,其实简单翻译过来就是认证方案的意思.既然一种方案,那我们就要知道这个方案的名 ...
- Effective C++(7) 为多态基类声明virtual析构函数 or Not
问题聚焦: 已经对一个对象执行了delete语句,还会发生内存泄漏吗? 先来看个demo: // 计时器类 class TimeKeeper { public: TimeKeeper(); ~Time ...
- Java学习---Java面试基础考核·
Java中sleep和wait的区别 ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线 ...