How can I extend jQueryUI datepicker to accept an additional argument?

前端 未结 3 507
悲哀的现实
悲哀的现实 2020-11-30 08:11

I like that jQueryUI datepicker is customizable enough to allow for a button to trigger showing the datepicker, but, unfortunately, it doesn\'t allow you to customize your o

3条回答
  •  甜味超标
    2020-11-30 08:37

    How about:

    var __picker = $.fn.datepicker;
    
    $.fn.datepicker = function(options) {
        __picker.apply(this, [options]);
        var $self = this;
    
        if (options && options.trigger) {
            $(options.trigger).bind("click", function () {
                $self.datepicker("show");
            });
        }
    }
    

    Usage:

    $("#date").datepicker({
        trigger: "#button"
    });
    
    $("#date2").datepicker({
        trigger: "#button2"
    });
    

    Example: http://jsfiddle.net/gduhm/


    Or, less intrusively with your own jQuery plugin:

    $.widget("ui.datepicker2", {
        _init: function() {
            var $el = this.element;
            $el.datepicker(this.options);
    
            if (this.options && this.options.trigger) {
                $(this.options.trigger).bind("click", function () {
                    $el.datepicker("show");
                });
            }
        }
    });
    

    (Similar usage, except use datepicker2 or whatever you name it)

    Example: http://jsfiddle.net/puVap/

提交回复
热议问题