【问题标题】:jQuery datepicker function overridejQuery datepicker 函数覆盖
【发布时间】:2012-10-04 11:03:44
【问题描述】:

我使用 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); 
      } 
});

【问题讨论】:

  • 如果我理解,您是否只需要特定 datepickers 的特定行为,而不是所有这些行为?

标签: jquery jquery-ui datepicker


【解决方案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);
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多