I am trying to add a class to the .fc-event element via jQuery and it will not apply the class. Is there any reason for this? Do I have to use some type of ajax request to make this happen. Just using the basic code below:

$('.fc-event').addClass('test');

Comments

jsheffers’s picture

I can add a class to the .fullcalendar containing div, but it won't apply to anything inside that div.

tim.plunkett’s picture

How are you using jQuery to do that? $(document).ready() will not work, because everything inside .fullcalendar is dynamically generated AFTER that. Try using Drupal.behaviors: http://drupal.org/node/171213#behaviors

jsheffers’s picture

This still doesn't work...

(function($) {

Drupal.behaviors.calendarItems = function(context) {
  $('.fc-event').addClass('testclass');
}

}(jQuery));

tim.plunkett’s picture

Well, that's Drupal 6 syntax for one. Also, when you try the D7 one, if it doesn't work try Drupal.behaviors.ZZZcalendarItems to ensure its not a priority thing.

jsheffers’s picture

Ok so I think this is the D7 version based on the link you sent me. Still not working.

Drupal.behaviors.ZZZcalendarItems = {
    attach: function (context, settings) {
      $('.fc-event', context).addClass('testclass');
    }
  }

Is there a special way I need to add this? The javascript file is included via the .info file, and inspecting it shows that the code is included.

tim.plunkett’s picture

Assigned:Unassigned» tim.plunkett

Alright, thanks for spending the time to test that out, I'll have to dig into it more I guess.

jsheffers’s picture

Hey Tim, Have you had any time to look into this?

slcp’s picture

Status:Active» Closed (works as designed)

I have had a similar problem. This due to the weighting order (or lack of) for Drupal.behaviors.

Use the Behavior Weights module to ensure you code is being invoked after FullCalendar has created the calendar in the DOM.