2016-11-20 87 views
1

我注意到這個問題問了幾次,但沒有真正的正確答案或良好的反饋,以指導正確的道路。fullcalendar:如何爲每一天添加所有事件的總持續時間

我正在使用fullcalendar javascript插件,並試圖爲每天添加多個事件的總小時數,然後我將在每天的頁眉或頁腳中顯示總和。

我已經嘗試了許多不同的方法來做到這一點,但我得到了我的結果最接近的是與此代碼:

eventAfterRender: function(event, element, view) { 

      if (event.totalhrs > 0) { 
       var sd = event.startdate; 

       if (dateTotal.hasOwnProperty(sd)) { 
        dateTotal[event.startdate] = (dateTotal[event.startdate] + +event.totalhrs); 
       } else { 
        dateTotal[event.startdate] = +(event.totalhrs); 
       } 

       $(".fc-day-top[data-date='"+event.startdate+"']").find('.fc-dailytotal').text(dateTotal[event.startdate]); 
      } 

     } 

這個工作當日歷呈現的第一次,但如果有一個事件發生變化時,它會繼續添加錯誤地顯示非常高的值的總數。我明白爲什麼它錯誤地加上了總數(dateTotal[event.startdate] + +event.totalhrs),但我希望有人能幫助指引我朝着正確的方向完成正確的結果。

感謝任何反饋/幫助。

回答

0

我想出了一個替代方法來讓這項工作沒有一天持有總和的日期數組。我希望這能幫助任何一直在搜索的人。

請記住,這個例子只適用於月視圖...有一些調整,使其工作周/日視圖。

此外,該事件必須有一個總小時數對象,用於總和總和。您將在下面看到這是event.totalhrs

viewRender: function(view, element) { 
    $.each($(".fc-day-top"), function(key, val) { 
    var dateYMD = $(this).attr("data-date"); 
    $(this).append("<div class='fc-dailytotal' id='dailytotal-"+dateYMD+"'></div>"); 
    }); 
}, 

eventRender: function(event, element, view) { 
    $(".fc-dailytotal").text(0); //Clear total sum 
}, 

eventAfterRender: function(event, element, view) { 
    var currentday = moment(event.start).format("YYYY-MM-DD"); 

    if (event.totalhrs > 0) { 
     var prev = $("#dailytotal-"+currentday).text() || 0; 
     $("#dailytotal-"+currentday).text(+prev + +event.totalhrs); 
    } 
} 

您可以使用此方法來計算每週總以及。

+0

你好,我正在尋找類似的東西,我想分配一個事件的小時,例如一天中的一個事件有4個小時,所以現在如果我有2個事件在一天4-4小時,事件不應該發生,你能幫我在這裏。 – Nikhar

相關問題