2

我使用 jQuery datepicker 创建了一些自定义 datepicker,它运行良好。在某些情况下,我需要一些 onSelect 事件的功能,并且想要覆盖它。但我不需要更改初始日期选择器的任何其他设置。

这是我的代码示例:

$('#start_date.datepicker, #end_date.datepicker').attachCustomDatepicker();

$('#start_date.datepicker').datepicker({ 
      onSelect: function(dateValue, inst) { 
             $('#end_date.datepicker').datepicker("option", "minDate", dateValue); 
      } 
});
4

1 回答 1

1

由于这是不可能的,我想出解决方法:将函数作为参数传递给自定义 jQuery 函数。这是创建日期选择器的代码:

var onSelectFunction = function(dateValue){
        $('#end_date.datepicker').datepicker("option", "minDate", dateValue);
    }
    options.onSelect = onSelectFunction;
    $('#start_date.datepicker, #end_date.datepicker').attachCustomDatepicker(options);

这是我的自定义函数的预览:

$.fn.attachCustomDatepicker = function(options) { 

    var defaultOptions = {
        someDefaultCustomParamsHere: ,
        onSelect: null
    }

    var onSelectFunction = function(params){ return false; }

    if (typeof options == 'object') {
            options = $.extend(defaultOptions, options);
    } else {
            options = defaultOptions;
    }

    if(!options.onSelect){
        options.onSelect = onSelectFunction;
    }

    $(this).datepicker( "destroy" );

    $(this).datepicker({
         onSelect: function (dateValue, inst) {
            options.onSelect(dateValue);
        }
    }
}
于 2012-10-08T14:00:47.503 回答