2017-10-10 2 views

Répondre

1

C'est un peu difficile, mais voici une façon de le faire.

Working JSFiddle.

Fullcalendar a plusieurs rappels où vous pouvez exécuter Javascript arbitrairement. Vous pouvez donc utiliser l'un de ces rappels pour parcourir tous les éléments souhaités et ajouter les attributs de données souhaités.

J'ai utilisé le rappel eventAfterAllRender ci-dessous. Initialement, j'ai essayé d'utiliser le rappel (plus logique) viewRender, mais il semble que les éléments tbody td n'existent pas réellement à ce moment-là, donc vous ne pouvez pas les trouver ou les modifier. Je suppose que vous pourriez le faire, si vous avez modifié le code source de fullCalendar.

$('#calendar').fullCalendar({ 
    eventAfterAllRender: function (view) { 

     var row, cell, date; 

     // First iterate over each calendar row 
     $('.fc-content-skeleton').each(function(i) { 
      row = $(this); 

      // Now iterate over each header cell within this row 
      $('thead td', row).each(function(k) { 
       cell = $(this); 

       // Get the date attribute from the current thead td 
       date = cell.data('date'); 

       // Find the matching tbody td, at the same index 'k' 
       // as our current thead td, and add the data attribute. 
       $('tbody td', row).eq(k).data('date', date); 

       // Since the data attribute won't be visible in the source, 
       // temporarily add the actual date to the cell to confirm 
       // it is really working. Remove this once you can see it works. 
       $('tbody td', row).eq(k).html(date); 
      }); 
     }); 
    } 
});