jQuery实现web备忘录-5(定时提醒-标记完成状态)

来源:互联网 发布:mac网络偏好设置在哪 编辑:程序博客网 时间:2024/04/28 13:15

监听checkbox状态;选中就是完成事件;
而且完成和没有完成的事件分开放置;
要分析每条事件的状态

  • extend()合并对象;$.merge() 函数用于合并两个数组内容到第一个数组。这里我们使用extend()
  • 升级提醒时间,替换js自带date,使用jquery时间插件,精确到秒npm i jquery-datetimepicker --save
  • 为了异步加载删除按钮事件,使用 jQuery.Deferred() 方法。deferred对象就是jQuery的回调函数解决方案。也就是可以使其他程序在后台继续执行,不用冻结。原生的就是全部冻结,程序暂时暂停
    // 更新Task    function update_task(index,data){        if (index === undefined || !task_list[index]) return;        task_list[index] = $.extend({},task_list[index],data);        // console.log(store.get('task_list'));        refresh_task_list();    }   

这里写图片描述
点击后,会重新刷新网页,所以选取不了按钮。所以我们可以在渲染页面的时候,让其来控制check
这里写图片描述
是不是很巧妙呢?

  • jQuery规定,deferred对象有三种执行状态—-未完成,已完成和已失败。如果执行状态是”已完成”(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是”已失败”,调用fail()方法指定的回调函数;如果执行状态是”未完成”,则继续等待,或者调用progress()方法指定的回调函数(jQuery1.7版本添加)。
  • dtd.resolve()的意思是,将dtd对象的执行状态从”未完成”改为”已完成”,从而触发done()方法。
  • http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
  • jQuery提供了deferred.promise()方法。它的作用是,在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。
    resolved方法用在等待用户点击的时候,因为我们不知道用户什么时候点击,所以需要异步
0 0
原创粉丝点击