关于时间控件实现

一. 图例

 思路:

 关于粒度控制设置为 realtime hour day month year

关于选择响应设置为 input[type=radio]

关于展现设置为 input[type=text]

关于提交自然是input[type=button]

设计思绪

  1. 可以自己设置是否显示某个粒度。

  2. 可以自动选中某个粒度。

  3. 可以支持提交事件。

  4. 可以方便获取时间结果。

分析

  1. 要求提供接口 所以要分离模块 realtime hour day month year 分开模块处理 

  2. 创建各个 radio 并设置对应关系。

  3. 由于要控制事件对应 于是针对不同粒度做事件回调的对应表

      {

        "realtime": function(){

        },

        "hour": function(){

        },

        "day": function(){

        },

        "month": function(){

        },

        "year": function(){

        }

      }

  4. 把所有的数据 聚焦INPUT 我们的数据都是 针对input[type=text] 来展现 那么 数据也存上面吧。(是做了cache而已 不是真的存上面 做了对应表)

  5. 对提交的callback进行自己的再处理 这样可以实现更加强大的功能 方便提供参数 。

  6. 把每个模块针对性的对应 realtime 隐藏后面的input[type=text] 

    hour,day,month,year 分别逐步筛选掉的 小时选项 天选项 月选项 年选项

  7. 有了对应 只要控制是显示还是隐藏就够了。

  ……

完成上面的所有 你还会惧怕写几行代码啊? 从设计 到实现SO EASY!

posted @ 2012-05-10 23:09  AlfredLee  阅读(249)  评论(0编辑  收藏  举报