jQuery datepicker函数覆盖

时间:2012-10-04 11:03:44

标签: jquery jquery-ui datepicker

我使用jQuery datepicker创建了一些自定义日期选择器,它完美无缺。在某些情况下,我需要onSelect事件的某些功能,并希望覆盖它。但我不需要从初始datepicker更改任何其他设置。

这是我的代码示例:

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

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

1 个答案:

答案 0 :(得分:1)

由于这是不可能的,我想出了解决方法: 将函数作为param传递给自定义jQuery函数。这是创建datepickers的代码:

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);
        }
    }
}