开始和结束之间的每个日期的javascript.addclass
我正在使用一个jqueryeventcalendar插件 我的活动有一个开始日期和结束日期,我有下面的代码,它在日历上添加了一个绿色方框,一个是开始日期,一个是结束日期开始和结束之间的每个日期的javascript.addclass,javascript,jquery,Javascript,Jquery,我正在使用一个jqueryeventcalendar插件 我的活动有一个开始日期和结束日期,我有下面的代码,它在日历上添加了一个绿色方框,一个是开始日期,一个是结束日期 eg start date - > 12-08-2012 end date -> 15-08-12 我正在努力解决的问题是如何在开始日期和结束日期之间为每个日期添加一个绿色正方形 eg start date - > 12-08-2012 end date -> 15-08-12 将突出显示12、1
eg start date - > 12-08-2012
end date -> 15-08-12
我正在努力解决的问题是如何在开始日期和结束日期之间为每个日期添加一个绿色正方形
eg start date - > 12-08-2012
end date -> 15-08-12
将突出显示12、13、14和15
var eventDate = new Date(parseInt(event.startdate)),
eventYear = eventDate.getFullYear(),
eventMonth = eventDate.getMonth(),
eventDay = eventDate.getDate();
var eventDate1 = new Date(parseInt(event.enddate)),
eventYear1 = eventDate1.getFullYear(),
eventMonth1 = eventDate1.getMonth(),
eventDay1 = eventDate1.getDate();
// add mark in the dayList to the days with events
if (eventYear == flags.wrap.attr('data-current-year') && eventMonth == flags.wrap.attr('data-current-month')) {
flags.wrap.find('.currentMonth .eventsCalendar-daysList #dayList_' + eventDay).addClass('dayWithEvents');
}
if (eventYear1 == flags.wrap.attr('data-current-year') && eventMonth1 == flags.wrap.attr('data-current-month')) {
flags.wrap.find('.currentMonth .eventsCalendar-daysList #dayList_' + eventDay1).addClass('dayWithEvents');
}
我刚刚做了同样的增强,但实际上仍然对它进行了微调,我使用了日期匹配。我已经将日历插件移植到github repo上,但这一增强功能还没有推出。如果你仍然对答案感兴趣,我可以快点完成它并提供链接-但是它是这样的:
var daysElement = $element.find('.currentMonth .eventsCalendar-daysList');
var dateToBeChecked = new Date(parseInt(event.startDate));
var endDate = new Date(parseInt(event.endDate));
while (dateToBeChecked.compareTo(endDate) <=0) {
daysElement.find('#dayList_' + dateToBeChecked.getDate())
.addClass('dayWithEvents');
dateToBeChecked.addDays(1);
}
请注意,微调涉及处理两个不同日历月内存在的事件,等等。我刚刚做了相同的增强,但实际上仍然对其进行了微调,并用于日期匹配。我已经将日历插件移植到github repo上,但这一增强功能还没有推出。如果你仍然对答案感兴趣,我可以快点完成它并提供链接-但是它是这样的:
var daysElement = $element.find('.currentMonth .eventsCalendar-daysList');
var dateToBeChecked = new Date(parseInt(event.startDate));
var endDate = new Date(parseInt(event.endDate));
while (dateToBeChecked.compareTo(endDate) <=0) {
daysElement.find('#dayList_' + dateToBeChecked.getDate())
.addClass('dayWithEvents');
dateToBeChecked.addDays(1);
}
请注意,微调涉及处理两个不同日历月内存在的事件,等等。每当鼠标悬停在包含结束日期的日期上时,我为同一脚本做了类似的操作:
// add mark in the dayList to the days with events
if (eventYear == flags.wrap.attr('data-current-year') && eventMonth == flags.wrap.attr('data-current-month')) {
flags.wrap.find('.currentMonth .eventsCalendar-daysList #dayList_' + parseInt(eventDay)).addClass('list-group-item-success');
if (event.date_end) {
$('#dayList_' + parseInt(eventDay)).hover(
function () {
$('#dayList_' + parseInt(eventDay)).nextUntil('#dayList_' + parseInt(eventDayEnd)).andSelf().add('#dayList_' + parseInt(eventDayEnd)).addClass('list-group-item-danger');
},
function () {
$('#dayList_' + parseInt(eventDay)).nextUntil('#dayList_' + parseInt(eventDayEnd)).andSelf().add('#dayList_' + parseInt(eventDayEnd)).removeClass('list-group-item-danger');
}
);
}
在上述操作生效之前,需要进行一些修改。
在生成每个数据的部分中:
$.each(data, function(key, event) {
我添加了一些额外的代码:first IF
if (event.date_end) {
var eventDateTimeEnd = event.date_end.split(" "),
eventDateEnd = eventDateTimeEnd[0].split("-"),
eventTimeEnd = eventDateTimeEnd[1].split(":"),
eventYearEnd = eventDateEnd[0],
eventMonthEnd = parseInt(eventDateEnd[1]) - 1,
eventDayEnd = parseInt(eventDateEnd[2]),
//eventMonthToShow = eventMonth,
eventMonthToShowEnd = parseInt(eventMonthEnd) + 1,
eventHourEnd = eventTimeEnd[0],
eventMinuteEnd = eventTimeEnd[1],
eventSecondsEnd = eventTimeEnd[2],
eventDateEnd = new Date(eventYearEnd, eventMonthEnd, eventDayEnd, eventHourEnd, eventMinuteEnd, eventSecondsEnd);
}
第二如果
if (event.date_end) {
var eventDateEnd = new Date(parseInt(event.date_end)),
eventYearEnd = eventDateEnd.getFullYear(),
eventMonthEnd = eventDateEnd.getMonth(),
eventDayEnd = eventDateEnd.getDate(),
eventMonthToShowEnd = eventMonthEnd + 1,
eventHourEnd = eventDateEnd.getHours(),
eventMinuteEnd = eventDateEnd.getMinutes();
}
正如您所看到的,我使用了相同的代码,为每个var赋予了一个新的名称,只是在每个var中添加了End
当然,在推送事件数据时,您需要确定数据是否包含结束日期。
您使用的格式将与您的不同,我使用Bootstrap3.10编写了此脚本
if (event.date_end) {
events.push('<li id="' + key + '" class="list-group-item '+event.type+'"><time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>----TILL-----<time datetime="'+eventDateEnd+'"><em>' + eventStringDateEnd + '</em><small>'+eventHourEnd+":"+eventMinuteEnd+'</small></time>'+eventTitle+'<p class="eventDesc ' + eventDescClass + '">' + event.description + '</p></li>');
}else{
events.push('<li id="' + key + '" class="list-group-item '+event.type+'"><time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>'+eventTitle+'<p class="eventDesc ' + eventDescClass + '">' + event.description + '</p></li>');
}
如果有人想帮助从mysql/pdo数据库检索数据。。。。给我留言。每当鼠标悬停在包含结束日期的日期上时,我为同一脚本制作了类似的内容:
// add mark in the dayList to the days with events
if (eventYear == flags.wrap.attr('data-current-year') && eventMonth == flags.wrap.attr('data-current-month')) {
flags.wrap.find('.currentMonth .eventsCalendar-daysList #dayList_' + parseInt(eventDay)).addClass('list-group-item-success');
if (event.date_end) {
$('#dayList_' + parseInt(eventDay)).hover(
function () {
$('#dayList_' + parseInt(eventDay)).nextUntil('#dayList_' + parseInt(eventDayEnd)).andSelf().add('#dayList_' + parseInt(eventDayEnd)).addClass('list-group-item-danger');
},
function () {
$('#dayList_' + parseInt(eventDay)).nextUntil('#dayList_' + parseInt(eventDayEnd)).andSelf().add('#dayList_' + parseInt(eventDayEnd)).removeClass('list-group-item-danger');
}
);
}
在上述操作生效之前,需要进行一些修改。
在生成每个数据的部分中:
$.each(data, function(key, event) {
我添加了一些额外的代码:first IF
if (event.date_end) {
var eventDateTimeEnd = event.date_end.split(" "),
eventDateEnd = eventDateTimeEnd[0].split("-"),
eventTimeEnd = eventDateTimeEnd[1].split(":"),
eventYearEnd = eventDateEnd[0],
eventMonthEnd = parseInt(eventDateEnd[1]) - 1,
eventDayEnd = parseInt(eventDateEnd[2]),
//eventMonthToShow = eventMonth,
eventMonthToShowEnd = parseInt(eventMonthEnd) + 1,
eventHourEnd = eventTimeEnd[0],
eventMinuteEnd = eventTimeEnd[1],
eventSecondsEnd = eventTimeEnd[2],
eventDateEnd = new Date(eventYearEnd, eventMonthEnd, eventDayEnd, eventHourEnd, eventMinuteEnd, eventSecondsEnd);
}
第二如果
if (event.date_end) {
var eventDateEnd = new Date(parseInt(event.date_end)),
eventYearEnd = eventDateEnd.getFullYear(),
eventMonthEnd = eventDateEnd.getMonth(),
eventDayEnd = eventDateEnd.getDate(),
eventMonthToShowEnd = eventMonthEnd + 1,
eventHourEnd = eventDateEnd.getHours(),
eventMinuteEnd = eventDateEnd.getMinutes();
}
正如您所看到的,我使用了相同的代码,为每个var赋予了一个新的名称,只是在每个var中添加了End
当然,在推送事件数据时,您需要确定数据是否包含结束日期。
您使用的格式将与您的不同,我使用Bootstrap3.10编写了此脚本
if (event.date_end) {
events.push('<li id="' + key + '" class="list-group-item '+event.type+'"><time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>----TILL-----<time datetime="'+eventDateEnd+'"><em>' + eventStringDateEnd + '</em><small>'+eventHourEnd+":"+eventMinuteEnd+'</small></time>'+eventTitle+'<p class="eventDesc ' + eventDescClass + '">' + event.description + '</p></li>');
}else{
events.push('<li id="' + key + '" class="list-group-item '+event.type+'"><time datetime="'+eventDate+'"><em>' + eventStringDate + '</em><small>'+eventHour+":"+eventMinute+'</small></time>'+eventTitle+'<p class="eventDesc ' + eventDescClass + '">' + event.description + '</p></li>');
}
如果有人想帮助从mysql/pdo数据库检索数据。。。。给我留言。在浏览器中检查日历的呈现html和CSS。。您需要覆盖与包装器关联的样式。我不仅仅需要开始和结束之间的foreach日期--flags.wrap.find'.currentmount.eventsCalendar daysList dayList_u'+datebetween.addClass'dayWithEvents';在dayWithEvents类中,您需要设置背景颜色:绿色!重要的规则太过凌驾。。你在这么做吗?我不知道你在说什么,当前的设置很好,背景色也很好。我正在努力解决的问题是如何为开始日期和结束日期之间的每个日期添加一个绿色方框。在浏览器中检查日历的呈现html和CSS。。您需要覆盖与包装器关联的样式。我不仅仅需要开始和结束之间的foreach日期--flags.wrap.find'.currentmount.eventsCalendar daysList dayList_u'+datebetween.addClass'dayWithEvents';在dayWithEvents类中,您需要设置背景颜色:绿色!重要的规则太过凌驾。。你在这么做吗?我不知道你在说什么,当前的设置很好,背景色也很好。我正在努力解决的问题是如何在开始日期和结束日期之间为每个日期添加一个绿色正方形。