簡體   English   中英

FullCalendar根據視圖更改事件顏色

[英]FullCalendar changing event color based on view

我正在嘗試根據完整日歷中呈現的視圖動態更改事件顏色。

當我使用ajax將事件填充到日歷中時,我從服務器動態傳遞了color和textColor。

        if event.service_area:
        if event.service_area.pk == 1:
            color = '#4986e7'
        elif event.service_area.pk == 2:
            color = '#ff7537'
        elif event.service_area.pk == 3:
            color = '#f691b2'
    else:
        color = '#00a19c'

    start = event.start_datetime.strftime("%Y-%m-%d %H:%M:%S")

    event_slug = {
        'title': event.summary,
        'start': start,
        'description': event.description,
        'location': event.location,
        'g_event_id': event.google_event_id,
        'status': event.status,
        'event_id': event.id,
        'color': '#fff',
        'textColor': color,
    }

在“月”視圖中,我想保留我最初在事件json中傳遞的顏色(顏色文本,白色背景),但是當我切換到“ basicWeek”或“ agendaDay”視圖時,我希望顏色進行切換(白色文本,彩色背景)。 當我第一次切換視圖時,它可以工作,但是隨后進行的任何視圖切換都會導致顏色不斷切換。

eventRender: function(event, element, view) {
    if (view !== 'month' ) {
      var color = event.color;
      var text = event.textColor;

      event.color = text;
      event.textColor = color;
    }
}

如何設置此事件渲染腳本,以僅在我要從其更改的視圖為“月”到“ agendaDay”或“ basicWeek”時切換我最初通過的顏色,然后在切換回“一個月的視圖?

您在錯誤的對象上使用了顏色。

文檔中

  • event是嘗試呈現的事件對象。
  • element是一個新創建的jQuery元素,將用於呈現。 它已經用正確的時間/標題文本填充了。

因此,將顏色應用於element變量,而不是event 這樣,您的原始顏色不會在實際事件對象中更改,而只會在渲染對象中更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM