3

我需要根据活动类型或当天是否已订满,以不同的颜色显示不可用的日期。

下面的示例从数据库中获取日期并将它们作为数组传递给 JavaScript 目前我在数组中传递四个参数, [2012,7, 15, 'Some events']例如年、月、日和年。我想更改此数组以将第五个参数作为 color 传递[2012,7, 15, 'Some events', 'Red']。这样我就可以根据事件类型更改单元格的颜色。

我不确定我将如何更改下面的脚本以使其工作。例如,我已经寻找但找不到匹配的。我将不胜感激这方面的帮助,因为我不是脚本大师。

function BindEvents()
{
//Script for Calendar
        var holiDays = [[2012,7, 15, 'Some events'],[2012,7, 4, 'Some Event'],[2012,7, 1, 'Full Booked'],[2012,7, 5, 'Full Booked']];
        $(function () {
            $("#txtBookDate").datepicker({
                dateFormat: "yy-mm-dd",
                minDate: "-0d",
                maxDate: "+90d",
                firstDay: 0,
                beforeShowDay: noWeekendsOrHolidaysOrBlockedDates
            });

            function noWeekendsOrHolidaysOrBlockedDates(date) {
                //var noWeekend = jQuery.datepicker.noWeekends(date);
                return setHoliDays(date);
            }

            // set holidays function which is configured in beforeShowDay
            function setHoliDays(date) {
                var day = date.getDay();
                if (day == 5 || day ==6) return [false, ''];

                for (i = 0; i < holiDays.length; i++) {
                    if (date.getFullYear() == holiDays[i][0]
                        && date.getMonth() == holiDays[i][1] - 1
                        && date.getDate() == holiDays[i][2]) {
                        return [false, 'holiday', holiDays[i][3]];
                    }
                }
                return [true, ''];
            }
        });
}

BindEvents();  
4

1 回答 1

5

来自精美手册

演出前

一个以日期为参数的函数,并且必须返回一个包含以下内容的数组:

  • [0]: true/false表示这个日期是否可选
  • [1]: 添加到日期单元格或""默认显示的 CSS 类名
  • [2]:此日期的可选弹出工具提示

该函数在日期选择器中的每一天在显示之前都会被调用。

因此,特定颜色的返回值没有空间。但是,数组的第一个元素可以包含多个类名,因此您可以通过 CSS 来实现。

如果您希望某个特定的假期以红色文本显示,那么您可以在您的beforeShowDay:

return [false, 'holiday red', holiDays[i][3]];

然后添加一点点CSS:

td.red span.ui-state-default {
    color: #f00;
}

red班级做点什么。

演示:http: //jsfiddle.net/ambiguous/pjJGf/

于 2012-06-24T07:21:57.050 回答