博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WeUI移动页面实现时间选择器(年-月-日-时-分)
阅读量:7238 次
发布时间:2019-06-29

本文共 2149 字,大约阅读时间需要 7 分钟。

在做微信公众号的时候,使用的WeUI样式,有一个需求是用户选择一个预约时间,需要年月日并精确到小时和分钟

但是WeUI的picker组件不支持直接显示5列,根据WeUI.js作者的建议,是将日期和时间选择作为两个选择器来实现。

所以我的实现思路是先选择日期,然后自动跳出时间选择,来模仿一个时间选择器。日期属于datepicker,时间属于普通的picker。

效果图:

点击期望时间跳出datepicker:

在选择时间并确定后跳出时间选择,这是一个普通picker:

之后就可以对选择的时间做处理了。

实现方法也很简单:在第一picker选择并消失后,调用第二个picker,这样可以保证连续调用。

关键在于监听第一个picker消失的事件,第一个消失后才能调用第二个。

代码:

$('.ma_expect_date').click(function(event) {        var _this = this;        weui.datePicker({            start: new Date(),            end: 2030,            defaultValue: [new Date().getFullYear(), new Date().getMonth()+1, new Date().getDate()],            onConfirm: function(result){                // 二级调用:时间                $('.ma_expect_date_picker .weui-picker').on('animationend webkitAnimationEnd', function() {                    show_expect_time_picker(_this, result);                });            },            id: 'ma_expect_date',            className: 'ma_expect_date_picker'        });    });    // -----------------------二级调用:时间    var hours = [],        minites = [],        symbol = [{ label: ':', value: 0 }];    function show_expect_time_picker(_this, date) {        var date = date[0].label + date[1].label + date[2].label;        if (!hours.length) {            for (var i = 0; i< 24; i++) {                var hours_item = {};                hours_item.label = ('' + i).length === 1 ? '0' + i : '' + i;                hours_item.value = i;                hours.push(hours_item);            }        }        if (!minites.length) {            for (var j= 0; j < 60; j++) {                var minites_item = {};                minites_item.label = ('' + j).length === 1 ? '0' + j : '' + j;                minites_item.value = j;                minites.push(minites_item);            }        }        weui.picker(hours, symbol, minites, {            defaultValue: [new Date().getHours()+1, 0, 0],            onConfirm: function(result) {                var time = result[0].label + ':' + result[2].label;                var expect_date = date + ' ' + time;                $(_this).find('.weui-cell__ft').text(expect_date);            },            id: 'ma_expect_time'        });    }

 

转载地址:http://uqrfm.baihongyu.com/

你可能感兴趣的文章
Android:time&date、TimePicker、DatePicker
查看>>
初始化weblogic密码
查看>>
Linux Top 命令解析
查看>>
一个C#项目 在引用References中有个引用项上有个黄色三角加感叹号 导致报错
查看>>
PPT无法修改默认打开程序的问题
查看>>
2011年度IT博客大赛50强之 jimmy_lixw
查看>>
WP8开发日志(2):MVC设计模式入门
查看>>
windows下配置Nginx1.0.9+php5.2.17
查看>>
咳咳,关于本空间的问题~
查看>>
power cpu的封装形式
查看>>
CentOS 7.2下安装Python3.5.2过程
查看>>
配置telnet客服端
查看>>
【腾讯Bugly干货分享】跨平台 ListView 性能优化
查看>>
谷歌三大核心技术(一)Google File System中文版
查看>>
体验2012 CodeRetreat全球活动
查看>>
我的友情链接
查看>>
Citrix xendesktop静态分发模式下合理管控分配虚拟桌面本地管理员权限
查看>>
解决Windows 10更新错误(Resolve Windows 10 upgrade errors)
查看>>
infortrend ESDS RAID6 数据恢复过程
查看>>
LVM逻辑卷管理器
查看>>