关于时间控件实现
一. 图例
思路:
关于粒度控制设置为 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!