zoukankan      html  css  js  c++  java
  • 扩展 jQuery datebox控件按钮

    功能需求: 自定义扩展,将原先的datebox控件按钮进行自定义的扩展:
    
    
    1.问题:
        对原先的时间按钮控件进行更改扩展,新增  “一刻钟” “半小时” “一小时”   选项。
        获取原先的 datebox 对象的原型,进行扩展。
    
    
    2.首先获取原先的datebox控件的原型
       function initDataButton(){
            var buttons = $.extend([], $.fn.datebox.defaults.buttons);
            buttons.splice(0, 2, {
                text: '一刻钟后',
                handler: function(target){
                    var opts=$.data(target,"datetimebox").options;
                    var date=_addm(target,"M",15);
                    _b52(target,opts.formatter.call(target,date));
                }
            },{
                text: '半小时后',
                handler: function(target){
                    var opts=$.data(target,"datetimebox").options;
                    var date=_addm(target,"M",30);
                    _b52(target,opts.formatter.call(target,date));
                }
            },{
                text: '一小时后',
                handler: function(target){
                    var opts=$.data(target,"datetimebox").options;
                    var date=_addm(target,"H",1);
                    _b52(target,opts.formatter.call(target,date));
                }
            },{
                text: '确定',
                handler: function(target){
                    _b53(target);
                }
            });
            $('#startTime').datebox({
                buttons: buttons
            });
            $('#endTime').datebox({
                buttons: buttons
            });
    }
    
    
    
    
    3.jQuery源码中的js代码:
    
    function _addm(_b4f,f,n){
        var c=$(_b4f).datetimebox("calendar");
        var t=$(_b4f).datetimebox("spinner");
        var date=c.calendar("options").current;
        var h=t.timespinner("getHours");
        if(f=="H"){    
            h+=n;
        }
        var m=t.timespinner("getMinutes");
        var x=m%10;
        if(x>0&&x<5){//1,2,3,4
            m-=x;
        }else if(x>5&&x<10){//6,7,8,9
            m+=(10-x);
        }
        if(f=="M"){
            m+=n;
        }
        var s=0;//t.timespinner("getSeconds");
        return new Date(date.getFullYear(),date.getMonth(),date.getDate(),h,m,s);
    };
    
    
    function _b52(_b55,_b56,_b57){
        var opts=$.data(_b55,"datetimebox").options;
        $(_b55).combo("setValue",_b56);
        if(!_b57){
        if(_b56){
        var date=opts.parser.call(_b55,_b56);
        $(_b55).combo("setText",opts.formatter.call(_b55,date));
        $(_b55).combo("setValue",opts.formatter.call(_b55,date));
        }else{
        $(_b55).combo("setText",_b56);
        }
        }
        var date=opts.parser.call(_b55,_b56);
        $(_b55).datetimebox("calendar").calendar("moveTo",date);
        $(_b55).datetimebox("spinner").timespinner("setValue",_b58(date));
        function _b58(date){
        function _b59(_b5a){
        return (_b5a<10?"0":"")+_b5a;
        };
        var tt=[_b59(date.getHours()),_b59(date.getMinutes())];
        if(opts.showSeconds){
        tt.push(_b59(date.getSeconds()));
        }
        return tt.join($(_b55).datetimebox("spinner").timespinner("options").separator);
        };
    };
    
    
    function _b53(_b54){
        var opts=$.data(_b54,"datetimebox").options;
        var date=_b4e(_b54);
        _b52(_b54,opts.formatter.call(_b54,date));
        $(_b54).combo("hidePanel");
    };
    
    
    
    function _b4e(_b4f){
        var c=$(_b4f).datetimebox("calendar");
        var t=$(_b4f).datetimebox("spinner");
        var date=c.calendar("options").current;
        return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds"));
    };

    修改之前:

    修改之后:

     

  • 相关阅读:
    重定向输出流实现程序日志
    为新员工分配部门
    从控制台接收输入的身份证号
    判断某一年是否为闰年
    linux重置mysql密码(root权限)
    mysql按照字符串类型的数值按数值进行排序
    android 下拉刷新
    android studio gradle 配置
    搭建自己的iOS内测分发平台
    http_range说明
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/6478359.html
Copyright © 2011-2022 走看看