在datepicker的日期添加链接

时间:2013-10-21 15:43:02

标签: jquery jquery-ui indexing datepicker

我有一个事件日历,需要在事件日添加链接,我正在使用日期选择器jQuery UI。

有没有人知道如何获得当天的索引?

我的代码:

$.ajax({
            url: "includes/ajax/datepicker_events.php",
            data: "action=showdates",
            dataType: "json",
            success: function(calendarEvents){
                $("#datepicker").datepicker({
                    numberOfMonths: [1, 1],
                    showCurrentAtPos: 0,
                    beforeShowDay: function (date){
                        for (i = 0; i < calendarEvents.length; i++) {
                            if (date.getMonth() == calendarEvents[i][0] - 1
                              && date.getDate() == calendarEvents[i][1]
                              && date.getFullYear() == calendarEvents[i][2]) {

                              return [false,"ui-state-active",calendarEvents[i][3]];
                              }
                        }
                        return [true, ""];
                    }
                });
            }
        });

1 个答案:

答案 0 :(得分:1)

我会使用onSelect在选择这些日期时打开一个新链接。

<强> JSFiddle

var calendarEvents = [[10,22,2013],[10,24,2013]];
var calendarHref = ["https://stackoverflow.com","https://google.com"];

$("#datepicker1").datepicker({
    numberOfMonths: [1, 1],
    showCurrentAtPos: 0,
    beforeShowDay: function (date) {
        for (i = 0; i < calendarEvents.length; i++) {
            if (date.getMonth() == calendarEvents[i][0] - 1 && date.getDate() == calendarEvents[i][1] && date.getFullYear() == calendarEvents[i][2]) {

                return [true, "ui-state-active", calendarEvents[i][3]];
            }
        }
        return [true, ""];
    },
    onSelect: function(dateText, inst) {
        for (i = 0; i < calendarEvents.length; i++) {
            if (inst.selectedMonth == calendarEvents[i][0] - 1 && inst.selectedDay == (""+ calendarEvents[i][1]) && inst.selectedYear == calendarEvents[i][2]) {
                window.open(
                  calendarHref[i],
                  '_blank'
                );
            }
        }
    }
});