jQuery ui 日期选择器 - 全局 extend/override?

jQuery ui Datepicker - global extend/override?

我有一个页面使用了数十个 jQuery-UI 的日期选择器实例。现在我需要向 beforeShowDay 函数添加额外的功能。

我认为,扩展它是正确的方法,直到我发现它不使用 widget-factory,这使得在我的情况下很难扩展。

有没有办法扩展逻辑..

这是我到目前为止尝试过的方法:

$(document).ready(function() {
    $.extend($.ui.datepicker.prototype, {
        beforeShowDay: function(d) {
            console.log(d);
        }
    });
});

这不会导致 js 错误,即使它在以常用方式打开日期选择器时不会在控制台中记录任何内容。

您可以在 $.datepicker._defaults 中访问 beforeShowDay,默认情况下是 null。所以,

$.datepicker._defaults.beforeShowDay = function(date){
    console.log(date);
    return date;
}