在beforeShowDay中更新datepicker工具提示
我有一个JQuery Datepicker,我突出显示日期并成功地向工具提示添加文本。 我有一些与本教程非常相似的内容。 我遇到的问题是,如果在同一天有多个事件,旧工具提示被最近添加的事件“覆盖”。 我期待有一种方法可以“追加”(比如标题+ =’新事件’),但我找不到任何东西。
$(document).ready(function() { var SelectedDates = {}; SelectedDates[new Date('04/05/2014')] = 'event1'; SelectedDates[new Date('04/05/2014')] = 'event2'; SelectedDates[new Date('04/07/2014')] = 'event3'; SelectedDates[new Date('04/07/2014')] = 'event4'; $('#txtDate').datepicker({ beforeShowDay: function(date) { var Highlight = SelectedDates[date]; if (Highlight) { return [true, "Highlighted", Highlight]; } else { return [true, '', '']; } } }); });
请参阅此处的问题以及该问题的工作示例:
http://jsfiddle.net/4KFQ4/
理想的结果是将event1event2作为同一单元格中的工具提示。
任何帮助,将不胜感激。
你得到的问题来自你的前几行:
var SelectedDates = {}; SelectedDates[new Date('04/05/2014')] = 'event1'; SelectedDates[new Date('04/05/2014')] = 'event2'; SelectedDates[new Date('04/07/2014')] = 'event3'; SelectedDates[new Date('04/07/2014')] = 'event4';
在这里,您将'event1'
保存到SelectedDates
,然后将'event2'
保存到同一位置,覆盖数据。 你可以做的是这样的事情:
SelectedDates[new Date('04/05/2014')] = ['event1']; SelectedDates[new Date('04/05/2014')].push('event2'); SelectedDates[new Date('04/07/2014')] = ['event3']; SelectedDates[new Date('04/07/2014')].push('event4');
显然,您可以将其简化为:
SelectedDates[new Date('04/05/2014')] = ['event1','event2']; SelectedDates[new Date('04/07/2014')] = ['event3','event4'];
或者无论什么让你最开心。
这将在每个特定日期创建一个包含所有事件的数组,然后工具提示将包含每个事件。 这是一个更新的小提示,向您显示结果: 单击此处 。
希望这有帮助!