jQuery 日期选择器函数覆盖 [英] jQuery datepicker function override

查看:21
本文介绍了jQuery 日期选择器函数覆盖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I created some custom datepicker using jQuery datepicker, and it works perfect. There is some scenarios when I need some functionality for onSelect event, and want to override it. But I need not to change any other setting from initial datepicker.

这是我的代码示例:

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

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

推荐答案

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

As this is not possible, I think out workaround: will pass function as param to custom jQuery function. This is code for creating datepickers:

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

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

and this is preview of my custom function:

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

这篇关于jQuery 日期选择器函数覆盖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆