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

该博客介绍了如何使用jQuery实现web备忘录的定时提醒功能,并详细讲解了如何标记备忘录的完成状态。通过监听checkbox状态来判断事件完成情况,并使用extend()合并对象和$.merge()函数进行数组操作。此外,升级了提醒时间,利用jQuery时间插件提高精度。文章还讨论了jQuery.Deferred()方法用于异步加载删除按钮事件,确保程序流畅执行。同时,解释了deferred对象的三种状态及其用法。
摘要由CSDN通过智能技术生成

监听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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值