Skip to main content

Core SDK functionality

This section explains the fundamental components of the JavaScript SDK and how to interact with its event system.

The Mambo object

The Mambo object is the primary interface for the JavaScript SDK. It extends jQuery to provide widget initialization capabilities along with all standard jQuery functionality.

To use the Mambo object:

JavaScript

The Mambo object takes a selector parameter and returns a jQuery object enhanced with Mambo widget methods. This lets you render widgets in specific locations on your page.

Event system

The SDK uses an event-driven architecture that allows you to listen for and respond to various system events. This enables you to customize behavior, modify data before rendering, and integrate with your site's functionality.

Listening for events

The SDK extends jQuery's standard on() and one() methods for event handling. You can use these to listen for events triggered by the SDK:

JavaScript
Note

Some of the mambo.data.* events return either a Backbone Collection or Model. To work with these as standard JSON objects, call the toJSON() function on the data object. Other mambo.data.* events return JSON objects directly. See the events reference table for specifics.

Note

The mambo.render.* events return a jQuery object containing the rendered element. See the jQuery API documentation for more information.

Available events

The SDK triggers various events that you can listen for.

Social events

EventDescriptionData Type
mambo.social.loadedTriggered when both Facebook and Twitter SDKs have been loadedN/A
mambo.social.fb_postTriggered when a badge is shared on FacebookN/A
mambo.social.tweetTriggered when a badge is tweetedN/A

User events

EventDescriptionData Type
mambo.user.createTriggered when creating usersBackbone Model
mambo.user.updateTriggered when updating usersBackbone Model
mambo.user.searchTriggered when searching for usersBackbone Model

Activity events

EventDescriptionData Type
mambo.activity.createTriggered when creating activitiesBackbone Model
mambo.activity.cancel_bountyTriggered when cancelling a bountyBackbone Model
mambo.activity.award_bountyTriggered when awarding a bountyBackbone Model
mambo.activity.errorTriggered when an Activity API error occursObject

Data events

EventDescriptionData Type
mambo.data.activitiesTriggered when activities data is loadedBackbone Model
mambo.data.clear_notificationTriggered when a notification is marked as readJSON Object
mambo.data.clear_all_notificationsTriggered when all notifications are marked as readJSON Object
mambo.data.behavioursTriggered when behaviours data is loadedBackbone Collection
mambo.data.userTriggered when user data is loadedBackbone Model
mambo.data.user_notificationsTriggered when notifications data is loadedBackbone Collection
mambo.data.user_walletsTriggered when user point wallets are loadedBackbone Collection
mambo.data.user_couponsTriggered when user coupons are loadedBackbone Collection
mambo.data.user_rewardsTriggered when user rewards are loadedBackbone Collection
mambo.data.user_achievementsTriggered when user achievements are loadedBackbone Collection
mambo.data.user_levelsTriggered when user levels are loadedBackbone Collection
mambo.data.user_giftsTriggered when user gifts are loadedBackbone Collection
mambo.data.user_missionsTriggered when user missions are loadedBackbone Collection
mambo.data.user_kpisTriggered when user KPIs are loadedBackbone Collection
mambo.data.user_activitiesTriggered when user activities are loadedBackbone Model
mambo.data.achievementsTriggered when achievements are loadedJSON Object
mambo.data.levelsTriggered when levels are loadedJSON Object
mambo.data.missionsTriggered when missions are loadedJSON Object
mambo.data.leaderboardTriggered when leaderboard data is loadedBackbone Model
mambo.data.leaderboardsTriggered when multiple leaderboards are loadedJSON Object

Render events

EventDescriptionData Type
mambo.render.tooltipTriggered when a tooltip is renderedjQuery Element
mambo.render.tooltip_rewardTriggered when a reward tooltip is renderedjQuery Element
mambo.render.earnTriggered when the "How do I earn points?" popup is renderedjQuery Element
mambo.render.giftTriggered when the "Gifting" widget is renderedjQuery Element
mambo.render.activitiesTriggered when the Activities Widget is renderedjQuery Element
mambo.render.activityTriggered when an individual activity is renderedjQuery Element
mambo.render.notificationTriggered when the Notification Widget is renderedjQuery Element
mambo.render.leaderboardTriggered when the Leaderboard Widget is renderedjQuery Element
mambo.render.headerTriggered when the Header Widget is renderedjQuery Element
mambo.render.profile_simpleTriggered when the simple profile is renderedjQuery Element
mambo.render.profileTriggered when the Profile Widget is renderedjQuery Element
mambo.render.tab_kpisTriggered when the Profile Widget KPIs are renderedjQuery Element
mambo.render.tab_giftsTriggered when the Profile Widget gifts are renderedjQuery Element
mambo.render.tab_levelsTriggered when the Profile Widget levels are renderedjQuery Element
mambo.render.tab_achievementsTriggered when the Profile Widget achievements are renderedjQuery Element
mambo.render.tab_missionsTriggered when the Profile Widget missions are renderedjQuery Element
mambo.render.tab_mission_detailsTriggered when the Profile Widget mission details are renderedjQuery Element
mambo.render.tab_couponsTriggered when the Profile Widget coupons are renderedjQuery Element
mambo.render.tab_activitiesTriggered when the Profile Widget summary is renderedjQuery Element
mambo.render.tab_[tags]Triggered when a Tag Tab is rendered, where [tags] is dynamically generated based on the tags usedJSON Object