2014-02-27 103 views
1

我有一個JQuery Datepicker,我正在突出顯示日期併成功向工具提示添加文本。我有一些與this tutorial非常相似的東西。我遇到的問題是,如果在同一日期有多個事件,舊的工具提示正在被最近添加的事件「覆蓋」。我期待有一種「追加」的方式(比如title + ='new event'),但是我找不到任何東西。在beforeShowDay中更新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在同一小區的提示。

任何幫助,將不勝感激。

回答

1

你得到的問題來自於你的前幾行:

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

或者任何讓你最開心的。

這將在每個特定日期與所有事件創建一個數組,然後工具提示將包含每個事件。這是一個更新的小提琴向您展示結果:Click Here

希望這有助於!

+0

我接受這個作爲我的回答,因爲它100%解決了我的問題,並且比我想要做的更清潔的解決方案。謝謝@ Thoughtful Thighentist – ter24