2014-11-24 13 views
5

Ho utilizzato i nuovi eventi in background in fullCalendar V2 per mostrare quali slot sono disponibili per la prenotazione, ma mi piacerebbe anche mostrare un titolo di qualche tipo nell'evento in background. L'impostazione di "titolo" sull'evento non mostra nulla.fullCalendar V2 eventi in background titolo

Esiste comunque?

Grazie

+0

Setting 'titolo' dovrebbe essere sufficiente. Potresti fornire un plunker, jsfiddle o almeno un'immagine? –

+0

Ciao Mario, per eventi in background intendo questo: http://fullcalendar.io/docs/event_rendering/Background_Events/ – jimbodeni

+2

@jimbodeni a quel punto, perché non trasformarlo in un evento? Prima che la funzione eventi in background fosse disponibile, mostro una soluzione alternativa in http://stackoverflow.com/a/26934653/1810243. Dovrai controllare la cronologia delle modifiche. Guarda lo snippet di codice in [revisione 3] (http://stackoverflow.com/posts/26934653/revisions) (ho sostituito quella risposta dopo che gli eventi in background sono diventati disponibili). – MikeSmithDev

risposta

3

Recentemente ho avuto un problema simile. Mi sto costruendo una semplice webapp per gestire il mio tempo di lavoro e volevo usare fullcalendar e mostrare quante ore ho lavorato ogni giorno. Eventi standard in cui mostra un rettangolo sottile che non ha un bell'aspetto. Ho notato che ci sono eventi in background, quindi li ho usati per marcare il giorno in cui ho lavorato. Sembrava molto meglio mentre veniva evidenziata l'intera giornata. Ma come te volevo mostrare alcune informazioni, vale a dire ore per il giorno. Quindi vengo con la seguente soluzione. Creo due eventi per il giorno. Il primo è la creazione di un evento in background e il secondo sta creando un evento normale con il titolo impostato su ore ma con lo sfondo impostato su trasparente. Con un po 'di aiuto di css allineo il testo per l'evento standard. Il codice per esso appare così:

$('#calendar').fullCalendar({ 
      eventBackgroundColor: '#ABFFA6', 
      eventColor: 'transparent', 
      eventBorderColor: 'transparent', 
      eventTextColor: '#000', 
      events: [ 
       {"start":"2015-01-02","rendering":"background"}, 
       {"title":"06:10","start":"2015-01-02","backgroundColor":"transparent"}, 
      ] 
     }); 

Questo codice segnerà 2 gennaio con sfondo verde chiaro e aggiungere un'etichetta 06:10 in esso. Questa soluzione può essere estrapolata ad altre viste (come la vista giornaliera).

6

È possibile utilizzare questo codice. Provalo.

eventRender: function(event, element){ 
    if(event.source.rendering == 'background'){ 
     element.append("YOUR HTML CODE"); 
    } 
} 
6

Ho modificato "eventRender" del calendario in modo che se un evento rileva un rendering in background, mostrano anche il titolo:

eventRender: function (event, element) { 
    if (event.rendering == 'background') { 
     element.append(event.title); 
    } 
} 
Problemi correlati