I have some code to get calendar events and display them. The display is only updated if the events have changed, since the last call.
var calendar = {
events = null,
display_calendar_events : function (data) {
// Some display stuff...
},
get_events: function() {
// Get messages for calendar
$.getJSON("/ajax/get-events/", function(json){
var new_events = json.data;
// If events haven't changed, do nothing
if (this.events === new_events) {
return true;
}
// Events have changed.
// Save new events
this.events = new_events;
// Display new events
this.display_calendar_events(json);
});
},
}
I call this with:
calendar.get_queued_events();
The problem is, I'm getting the error "this.display_calendar_events is not a function" (last line of code). But if I change this line to:
calendar.display_canendar_events(josn)
it works. The storing of the old events with "this.events" works fine in both cases.
Can someone explain this to me? How can "this" work for some stuff and not others? Thanks.
thisrefers to something else (thejqXHRobject afaik).