我有一个 JQuery Datepicker,我可以在其中突出显示日期并向工具提示成功添加文本。我有一些与 this tutorial 非常相似的东西。我遇到的问题是,如果同一日期有多个事件,则旧的工具提示将被最近添加的事件“覆盖”。我期待有一种方法可以“附加”(类似于 title+='new event'),但我找不到任何内容。
$(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, '', ''];
}
}
});
});
请参阅此处的 fiddle 问题的工作示例:
理想的结果是将 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'];
或者任何让你最高兴的事情。
这将在每个特定日期创建一个包含所有事件的数组,然后工具提示将包含每个事件。这是一个更新的 fiddle ,向您展示结果:Click Here .
希望这有帮助!
关于javascript - 更新 beforeShowDay 中的日期选择器工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22078629/