我在我的应用程序中使用Fullcalendarasp.net
。
如果我们需要在Fullcalendar中选择一个月或一年,有一个方法 as select
。我们可以传递startDate
到endDate
那个方法并选择那个时间段。
我需要weekends
在一个月内以编程方式选择。也需要week days
在一个月内选择。
我怎样才能做到这一点?
到目前为止我已经尝试过:
这是演示。
我在我的应用程序中使用Fullcalendarasp.net
。
如果我们需要在Fullcalendar中选择一个月或一年,有一个方法 as select
。我们可以传递startDate
到endDate
那个方法并选择那个时间段。
我需要weekends
在一个月内以编程方式选择。也需要week days
在一个月内选择。
我怎样才能做到这一点?
到目前为止我已经尝试过:
这是演示。
所以我得到了你的答案(我需要一些非常相似的东西,在寻求帮助时偶然发现了这个)。我们需要在 FullCalendar 和 DOM 之外思考一分钟。FullCalendar 使用 MomentJS,这将派上用场(这未包含在您的示例中,您需要它用于以下内容)。首先,您需要创建一个周末或工作日数组。我在接下来的 365 天(下一个全年)都这样做了。
使用 MomentJS 的周末数组示例:
$('#weekends').click(function() {
weekend_array = new Array();
var cal = $('#calendar').fullCalendar('getCalendar');
var curr_moment = moment(cal);
for(k=0; k<365; k++) // for the next 365 days (next year)
{
// if weekend
if(curr_moment.day()==0 || curr_moment.day()==6) // 0 being Sunday, 6 being Saturday
{
weekend_array.push(curr_moment.format("YYYY-MM-DD")); // format to match the data-date attr
}
curr_moment= curr_moment.add(1, 'days');
}
console.log("Number of weekend days: " + weekend_array.length);
console.log(weekend_array);
var dates = weekend_array
HighlightDates(dates);
// help DOM restore checked dates on click
$('#daymode').val('weekend');
});
所以你有你明年的周末阵列。现在,我们需要突出显示日期。问题是,一旦您单击箭头查看下个月,选定的日期就会被清除(因为我们在 DOM 中工作)所以我在一个可以为工作日、周末或按钮调用的函数中创建了选择日期点击:
function HighlightDates(dates){
$('.fc-day').each(function () {
var thisdate = $(this).attr('data-date');
var td = $(this).closest('td');
if ($.inArray($(this).attr('data-date'), dates) !== -1) {
td.addClass('fc-state-highlight');
} else {
td.removeClass('fc-state-highlight');
}
});
}
我希望这会有所帮助,一切的工作演示。:D http://jsfiddle.net/z8Jfx/255/