我試圖增強jQuery的片段,我發現在這裏stackoverlow(HTML markup for multi-day calendar events),但我碰到的,我真的不知道如何克服perculiar問題。基本上我想要實現的目的是避免在日曆中疊加多日事件。由於我只有1個聲望點(因爲我是新手),我無法用屏幕轉儲來解釋自己,但必須(至少試着)以書面形式解釋我自己。使用jQuery在日曆中正確顯示多日事件?
所以,這裏是我的問題。指數[3]在所述陣列的事件[]下面開始第4天,但由於每天四次還包含索引[0,1]的EVENTCOUNT被設定爲3。這意味着,如果在第四天發生新的事件將被給予evenCount 4.到目前爲止沒有問題。然而在第五天有三個事件(索引[0,3,4])。現在...這是我的問題。索引[3]在eventCount 3的第4天開始並持續到第12天,而索引[5]從第5天開始,並且因爲當天只有三個事件而被賦予與索引[3]相同的eventCount。下面的代碼片段(榮譽給ThinkingStiff的基本代碼):
var events = [{ from: 3, to: 9 }, { from: 4, to: 4 }, { from: 9, to: 11 },{ from: 4, to: 12 },{ from: 5, to: 7 }];
for(var eventIndex = 0, event; event = events[eventIndex], eventIndex < events.length; eventIndex++) {
for(var dayIndex = event.from; dayIndex <= event.to; dayIndex++) {
var dayElement = document.getElementById('day' + dayIndex),
firstDay = document.getElementsByClassName('event' + eventIndex),
top;
if(firstDay.length) {
top = firstDay[0].style.top;
} else {
var eventCount = dayElement.getElementsByClassName('event').length;
top = (eventCount * 20) + 'px';
};
var html = '<div '
+ 'class="event event' + eventIndex + '" '
+ 'style="top: ' + top + ';">'
+ eventIndex
+ '</div>';
dayElement.insertAdjacentHTML('beforeEnd', html);
};
};
我想實現的是一個檢查,以確定是否存在從當天的持續事件之前被添加到EVENTCOUNT那之前需要添加新的eventCounts,以便新事件不會堆疊在現有事件之上。我如何實現這一目標?
雖然我在這 - 事實證明,該陣列不允許額外的參數,例如「主題」。是否可以展開數組來包含自定義參數而不破壞整個代碼?
每個提示是極大的讚賞。