如何禁用 yui3 日历中的特定日期

How to disable specific dates in yui3 calender

我知道如何在 yui3 日历中禁用过去的日期,但如何禁用特定日期?

我应该为此指定规则吗?他们的文档不是很清楚我无法理解他们为定义规则而编写的语法。如果定义规则是解决方案,那么我如何定义一个规则来禁用特定日期?

例如:25-12-2015

确实,规则是禁用特定日期的好方法,您可以这样实现:

var calendar = new Y.Calendar({
    date: new Date("2015-12-25"),
    customRenderer: {
        rules: {
            2015: {
                11: {
                    25: "mydisableddays",
                    10: "mydisableddays"
                }
            }
        }
    },
    disabledDatesRule: "mydisableddays"
}).render();

由于您很可能会有一组要禁用的日期,因此您可以使用此辅助函数将数组转换为规则。

function datearray2filter(dates) {
    var ret = {};
    for (var i in dates) {
        var d = new Date(dates[i]),
            y = d.getFullYear(),
            m = d.getMonth();
        if (!ret[y]) ret[y] = {};
        if (!ret[y][m]) ret[y][m] = {};
        ret[y][m][d.getDate()] = "mydisableddays";
    }
    return ret;
};
console.log(datearray2filter(["2012-12-25", "2012-12-10"]);

这是 fiddle https://jsfiddle.net/fxaeberhard/5e1b8ay9/6/