在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']; 

或者无论什么让你最开心。

这将在每个特定日期创建一个包含所有事件的数组,然后工具提示将包含每个事件。 这是一个更新的小提示,向您显示结果: 单击此处 。

希望这有帮助!