Javascript 使用AJAX onMonthAdd加载Framework7日历事件
类似的问题,但我认为仍然有独特的不同: 我有一个内联日历,其中包含从AJAX脚本加载的事件,我可以让它正常工作,但是在未来的许多年中会有数百个事件。我需要的是一种加载当月事件并根据需要添加它们的方法。我想这可以通过onMonthAdd实现,但我遇到的问题是,当我将新元素推送到p.events时,新事件直到从元素中删除并读取月份后才会加载 例如:onMonthAdd为1月我为1月11日添加了一个事件。然后,当一月进入视图时,事件不会显示。但是,当我回到12月,然后回到11月时,1月份的日历将从DOM中删除。然后导航回一月,在DOM中重新创建月份,然后它将显示事件 主要问题是,如果onMonthAdd似乎是在将月份添加到DOM之后触发的,那么在DOM中创建元素之前添加事件如何可能。我找不到任何对beforeMonthAdd函数的引用 AJAX是不相关的,我可以让它工作,如果我能找到一种方法,只需在添加的月份中添加一个事件(没有AJAX) 下面是我尝试过的一些代码(不包括AJAX),但它在创建日历时不起作用,但在DOM中重新创建月份之前不会使用新日期进行更新:Javascript 使用AJAX onMonthAdd加载Framework7日历事件,javascript,jquery,dom,calendar,html-framework-7,Javascript,Jquery,Dom,Calendar,Html Framework 7,类似的问题,但我认为仍然有独特的不同: 我有一个内联日历,其中包含从AJAX脚本加载的事件,我可以让它正常工作,但是在未来的许多年中会有数百个事件。我需要的是一种加载当月事件并根据需要添加它们的方法。我想这可以通过onMonthAdd实现,但我遇到的问题是,当我将新元素推送到p.events时,新事件直到从元素中删除并读取月份后才会加载 例如:onMonthAdd为1月我为1月11日添加了一个事件。然后,当一月进入视图时,事件不会显示。但是,当我回到12月,然后回到11月时,1月份的日历将从DO
...
var calendarInline = myApp.calendar({
container: '#calendar-inline-container',
weekHeader: true,
firstDay: 0,
events: [
new Date(2017,7,1),
new Date(2017,7,31),
new Date(2017,8,1),
new Date(2017,8,30),
new Date(2017,9,1),
new Date(2017,9,31),
new Date(2017,10,1),
new Date(2017,10,30),
new Date(2017,11,1),
new Date(2017,11,31)
],
onMonthAdd: function(p,monthContainer){
var thisYear = $(monthContainer).find('picker-calendar-month').context.attributes['data-year'].value;
var thisMonth = $(monthContainer).find('picker-calendar-month').context.attributes['data-month'].value;
if(thisMonth==0){
p.params.events.push(new Date(thisYear,thisMonth,11));
}
},
});
...
我找到了一种迂回的方法,通过使用当前年份和月份执行setYearMonth来“重新加载”日历,实现了这一点,但问题是,当更改年份时,它实际上会创建一个无休止的循环。下面是代码:
...
onMonthAdd: function(p,monthContainer){
var thisYear = $(monthContainer).find('picker-calendar-month').context.attributes['data-year'].value;
var thisMonth = $(monthContainer).find('picker-calendar-month').context.attributes['data-month'].value;
if(thisMonth==0){
p.params.events.push(new Date(thisYear,thisMonth,11));
p.setYearMonth(p.currentYear, p.currentMonth, 1);
}
},
...
我对framework7和calendar对象的一些发现:
- 开始时加载三个月(上一个月、当前月和下一个月)
- 事件在添加后不会被删除,即使在从DOM中删除该月后,也会保留在日历对象中
- 同一日期的多个事件除了减慢脚本速度之外没有任何效果
- 在月日之前没有回调,仅在月日之后添加
- 可以通过调用setYearMonth并将持续时间设置为1毫秒来重新加载DOM,使其不可见转换
这对我的项目非常有效,用户交互流畅且快速。我关于framework7和calendar对象的一些发现:
- 开始时加载三个月(上一个月、当前月和下一个月)
- 事件在添加后不会被删除,即使在从DOM中删除该月后,也会保留在日历对象中
- 同一日期的多个事件除了减慢脚本速度之外没有任何效果
- 在月日之前没有回调,仅在月日之后添加
- 可以通过调用setYearMonth并将持续时间设置为1毫秒来重新加载DOM,使其不可见转换